1. 前言
在上一篇字符集详解中我们说到了产生乱码的原因,要么是读取数据时未读完整个汉字,要么是因为编码和解码的方式不统一,对于后者我们只需要规定好编码和解码的方式,而要解决读取数据时未读完整个汉字的问题,我们必须要有一个在遇到汉字时一次读取多个字节的方法,字符流应运而生。
其实,字符流的底层依然是字节流的方式,在读取英文等字符时一次读取一个字节,不同的是,当遇到中文时,会一次读取多个字节。我们已经学习了字节流中的文件 FileOutputStream 类和 FileInputStream 类,现在我们可以按照前面的方法继续学习。

首先,在字符流中有两个基本类,分别是字符输入流 Reader 类和字符输出流 Writer 类,这两个类都是抽象类,不能实例化对象,我们一般使用其子类创建对象完成数据的写出和读取。
2. 字符输入流
我们可以使用字符输入流 FileReader 把本地文件中的数据读取到程序中,该类在使用时分为以下三个步骤:
- 创建流对象
- 读取数据
- 释放资源/关流
示例:
import

本文详细介绍了Java中的字符流,包括字符输入流Reader和字符输出流Writer的基本使用和底层原理。字符流在处理中文时能确保一次读取完整个汉字,避免乱码问题。文章通过示例代码展示了如何读取和写入数据,并分析了内部缓冲区的工作机制。
订阅专栏 解锁全文
646

被折叠的 条评论
为什么被折叠?



