java的字符输入流

news2024/11/22 21:56:58

字符流的底层也是字节流。字符流=字节流+字符集。
特点是输入流一次读一个字节,遇到中文时,一次读多个字节(读多少个与字符集有关);输出流底层会把数据按照指定的编码方式进行编码,变成字节再写到文件中。
字符流适用于对纯文本文件进行操作。
Reader
Reader和Writer是抽象类。
Reader的实现类:
FileReader:操作本地文件的字符输入流;
BufferedReader:操作缓冲区的字符输入流;
LineNumberReader:带有行号的字符输入流。
Writer的实现类:
FileWriter:操作本地文件的字符输出流;
BufferedWriter:操作缓冲区的字符输出流;
LineNumberWriter:带有行号的字符输出流。
一、FileReader
(一)操作步骤
(1)创建字符输入流对象;
在这里插入图片描述
(2)读取数据;
在这里插入图片描述

(3)释放资源。
在这里插入图片描述
注意:
FileReader对象的空参的read()方法默认是“一次读一个字节,遇到中文一次读三个字节”,在读取之后还会进行解码转为十进制,十进制的数字也表示字符集上的数字。例如:英文二进制文件里的数据为“01100001”,read()方法进行读取解码后结果为97;中文二进制文件中内容为“11100110 10110001 10001001”,read()方法进行读取解码转成十进制为27721.
例如,新建一个a.txt文件,内容如下:
在这里插入图片描述
在这里插入图片描述
强转为字符输出:
在这里插入图片描述
带参数的read()读取数据、解码和强转散步合并了,把强转之后的数据放到数组中。
再例如,使用带参数的read():
在这里插入图片描述
说明:上述代码,害后面隐藏两个字符"\r\n",所以“害\r”为一组输出,‘\r’没有显示出来;"\n说"为一组输出,且’\n’实现了换行。
注意上述代码中的细节,new String()指定后面两个参数,读到几个字节就使用几个字节,因为最后可能字节不够填充byte数组。
二、FileWriter
构造方法:
在这里插入图片描述
后面两个构造方法第二个参数append赋值为true则进行续写。
成员方法:
在这里插入图片描述
在这里插入图片描述
例如:
在这里插入图片描述
结果为:
在这里插入图片描述
FileReader对象通过write()方法把25105根据UTF-8解码规则转化为字符“我”。
再例如,一次写多个字符:
在这里插入图片描述
结果为:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15个提效的设计类AI生成工具推荐

最近越来越多的AI工具如雨后春笋般涌现。我相信很多设计师会开始使用人工智能工具来帮助我们提高工作效率。 本文整理了15种易于使用的设计类AI工具 即时 AI 即时 AI 是通过自然语言描述,快速生成可编辑的 UI 设计稿的设计工具。 输入文字描述后,即可…

C语言:使用函数完成整型数组的打印、元素逆置、初始化

题目: 创建一个整形数组,完成对数组的操作 1. 实现 函数init() -- 初始化数组为全0 2. 实现 函数print() -- 打印数组的每个元素 3. 实现 函数reverse() -- 函数完成数组元素的逆置 要求:自己设计以上函数的参数,返回值。 思路&a…

AB32VG1:SDK_AB53XX_V061(4)蓝牙音频测试笔记

文章目录 1. 淘宝上两种开发板,有一种的蓝牙功能不正常2. 蓝牙音频测试2.1 《config.h》和《Boombox.setting》两个配置以哪个为准2.2 codeblocks更换链接库2.2.1 这样进入build options是错的2.2.2 build options正确打开方式 2.3.编译工程,下载运行2.3…

kafka 报错 - Cannot assign requested address

背景 在华为云服务器上跑了 zookeeper 和 kafka 的 broker,想内外网分流,重点就是做不到从外网去消费,比如用自己的 windows 笔记本去消费。 配置 server.properties 的 listener 为 broker 所在机子的的内网 IP 后,终于能 star…

Scala环境搭建及安装

salca环境搭建 由于scala是基于java来开发的, 编写的java类可以使用javac命令编译成.class文件被JVM加载到内存中执行 ! 那么scala可以通过scalac命令将编写的scala文件编译成.class文件一样被JVM加载到内存中,因此Scala是运行在JVM平台上的,所以安装Scala之前要安装…

【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之SpringBoot整合众多日志管理系统服务starter-logging

全方位攻克你的技术盲区之SpringBoot整合众多日志管理系统服务starter-logging 前提介绍Spring默认日志文件Spring的日志配置参数logging.levelmaven配置properties文件yaml文件 logging.fileapplication.yml中配置 logging.pathapplication.properties配置application.yml配置…

基于DBACAN的道路轨迹点聚类

目录 前言道路栅格化轨迹聚类参考资料 前言 很多针对道路轨迹的挖掘项目前期都需要对道路进行一段一段的分割成路段,然后对每一个路段来单独进行考察,如设定路段限速标识,超速概率等,如何对道路进行划分,其实是一个很…

华为OD机试真题 JavaScript 实现【滑动窗口】【2023 B卷 100分】,附详细解题思路

一、题目描述 有一个N个整数的数组,和一个长度为M的窗口,窗口从数组内的第一个数开始滑动直到窗口不能滑动为止,每次窗口滑动产生一个窗口和(窗口内所有数和和),求窗口滑动产生的所有窗口和的最大值。 二…

python: read excel

""" Insurance。py edit: geovindu,Geovin Du,涂聚文 date 2023-06-13 保险类 """import sys import osclass Insurance:"""保险类"""def __init__(self, InsuranceName, InsuranceCost, IMonth):&quo…

STM32使用QUADSPI读写外部Nor Flash(以W25Q64为例)

使用QUADSPI读写W25Q64 QUADSPI介绍硬件连接双闪存模式禁止双闪存模式使能 QUADSPI命令序列指令阶段地址阶段交替字节阶段空指令周期阶段数据阶段 QUADSPI主要信号接口协议模式单线SPI模式双线SPI模式四线SPI模式 使用QUADSPI操作W25Q64发送命令函数状态轮询函数读ID函数QUADSP…

应用案例 | FG-200:通过Modbus将FF H1设备集成到DCS系统

一 背景 FOUNDATION Fieldbus(FF)协议是一种现代化的数字通信协议,其中FF H1协议在大型的化工、电力、石油等流程工业领域得到了广泛应用。由于FF H1协议具有诸多优势,例如高度可靠性、高速数据传输、强大的诊断能力和灵活的设备…

第4章 总体设计

文章目录 第5章 总体设计5.1 设计过程例题 5.2 设计原理5.2.1 模块化模块化的优势 例题5.2.2 抽象5.2.3 逐步求精求精实际上是细化的过程与抽象的关系 5.2.4 信息隐藏和局部化5.2.5 模块独立模块独立的重要性模块独立的定性标准度量耦合① 无直接耦合② 数据耦合③ 标记耦合④ …

MySQL数据库基础 11

第十一章 数据处理之增删改 1. 插入数据1.1 实际问题1.2 方式1:VALUES的方式添加1.3 方式2:将查询结果插入到表中 2. 更新数据3. 删除数据4. MySQL8新特性:计算列 1. 插入数据 1.1 实际问题 解决方式:使用 INSERT 语句向表中插入…

8.1 正弦波振荡电路(2)

四、石英晶体正弦波振荡电路 石英晶体谐振器,简称石英晶体,具有非常稳定的固有频率。对于振荡频率稳定性要求高的电路,应选用石英晶体作选频网络。 1、石英晶体的特点 将二氧化硅( SiO 2 \,\textrm {SiO}_2\, SiO2​&#xff0…

华为OD机试真题 JavaScript 实现【找终点】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;设为nums&#xff0c;最大为100个成员&#xff0c;求从第一个成员开始&#xff0c;正好走到数组最后一个成员&#xff0c;所使用的最少步骤数。 要求&#xff1a; 第一步必须从第一元素开始&#xff0c;且1 < 第一步的步长 &…

测试 4 年,从外包 15K 跳槽去字节 38K+12,啃完这份笔记你也可以

粉丝小王转行做测试已经是第4个年头&#xff0c;一直是一个不温不火的小职员&#xff0c;本本分分做着自己的事情&#xff0c;觉得自己的工作已经遇到了瓶颈&#xff0c;一个偶然的机会&#xff0c;获得了一份软件测试全栈知识点学习笔记&#xff0c;通过几个月的学习&#xff…

虚拟机(VMware )部署

一、VMware 概述&#xff1a; VMware是一家提供虚拟化解决方案的领先公司&#xff0c;其产品被广泛应用于企业和个人用户的计算环境中。VMware的虚拟化技术可以将物理计算资源&#xff08;如服务器、存储和网络&#xff09;抽象成虚拟化的资源&#xff0c;从而提供更高的灵活性…

路径规划算法:基于黑猩猩优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于黑猩猩优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于黑猩猩优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

MySQL之流程控制,索引

一、条件语句 if 条件语句 delimiter // CREATE PROCEDURE proc_if () BEGINdeclare i int default 0;if i 1 THENSELECT 1;ELSEIF i 2 THENSELECT 2;ELSESELECT 7;END IF;END // delimiter ; 二、循环语句 while循环 delimiter // CREATE PROCEDURE proc_while () BEGI…