1、字符输入流Reader
(1)字符输入流Reader我们读取拥有中文的文件时,使用的字节流在读取,那么我们读取到的都是一个一个字节;
(2)只要把这些字节去查阅对应的编码表,就能够得到与之对应的字符;
(3)API中给我们已经提供了读取相应字符的功能流对象,Reader,读取字符流的抽象超类;
(4)read():读取单个字符并返回;
(5)read(char[]):将数据读取到数组中,并返回读取的个数。
2、FileReader类
(1)查阅FileInputStream的API,发现FileInputStream 用于读取诸如图像数据之类的原始字节流;
(2)要读取字符流,请考虑使用 FileReader;
(3)打开FileReader的API介绍,用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。
1 import java.io.FileOutputStream; 2 import java.io.FileReader; 3 import java.io.IOException; 4 5 public class CharStreamDemo { 6 public static void main(String[] args) throws IOException { 7 // 给文件中写中文 8 writeCNText(); 9 // 读取文件中的中文 10 readCNText(); 11 } 12 13 // 读取中文 14 public static void readCNText() throws IOException { 15 FileReader fr = new FileReader("D:\\Java\\cn.txt"); 16 int ch = 0; 17 while ((ch = fr.read()) != -1) { 18 // 输出的字符对应的编码值 19 System.out.println(ch); 20 // 输出字符本身 21 System.out.println((char) ch); 22 } 23 } 24 25 // 写中文 26 public static void writeCNText() throws IOException { 27 FileOutputStream fos = new FileOutputStream("D:\\Java\\cn.txt"); 28 fos.write("I Love Java,我爱你!".getBytes()); 29 fos.close(); 30 } 31 }