详解Java的IO流Part2:字符输入流(Reader)和字符输出流(Writer)

本文详细介绍了Java中的字符输入流Reader和字符输出流Writer,包括FileReader和FileWriter的使用。字符流解决了字节流在处理文本文件时可能出现的中文乱码问题,能以字符为单位进行读写。重点讲解了构造方法、读写方法以及如何进行文件的追加和换行操作。
摘要由CSDN通过智能技术生成

用字节流读取的时候 在遇到中文字符时不会显示完整的字符
因为一个中文字符存储时会占用多个字节(GBK:占用2个字节 UTF-8:占用3个字节)
因而 用字节流每次读取的是1/2或1/3个字 转换为char类型显示出来的是乱码

因此 Java提供了字符流类 可以以字符为单位读写数据 专门用于处理文本文件


一、字符输入流 Reader

java.io.Reader抽象类是表示用于读取字符流的所有类的超类(父类)
可以读取字符信息到内存中
java.io.FileReader继承了InputStreamReader继承了Reader

它定义了字符输入流的基本共性功能方法:

public int read() : 从输入流读取一个字符
public int read(char[] cbuf) : 从输入流中读取一些字符 并将它们存储到字符数组 cbuf中 
public void close() :关闭此流并释放与此流相关联的任何系统资源

FileReader 文件字符输入流 ★

作用:将硬盘文件中的数据以字符的方式读取到内存中

构造方法:

FileReader(File file) : 创建一个新的 FileReader  给定要读取的File对象
FileReader(String fileName) : 创建一个新的 FileReader  给定要读取的文件的名称

参数(读取的数据源):
String fileName:文件路径
File file:文件

构造方法内部执行流程:
1、创建一个FileReader对象
2、将FileReader对象指向要读取的文件


文件字符输入流 - 使用步骤★:
1、创建一个FileReader对象 构造方法中绑定要读取的数据源
2、使用FileReader对象中的read()方法读取文件
3释放资源


读字节方法:

1、public int read() : 从输入流读取一个字符

public static void main(String[] args) throws IOException {
   
    FileReader fr=new FileReader("F:\\IdeaProjects\\filetest\\a.txt");
    int len=0;
    while ((len=fr.read())!=-1)
    {
   
        System.out.print((char)len);
    }
    fr.close();
}

2、public int read(char[] cbuf) : 从输入流中读取一些字符 并将它们存储到字符数组中

String类的构造方法可将字符数组转换为字符串࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值