InputStream、OutputStream操作的是字节。 (字节可以根据编码表转成字符)
Writer、Reader只能操作字符、文本。
Demo.java:
package cn.xxx.demo; import java.io.FileReader; import java.io.IOException; /* * 字符输入流读取文本文件,所有字符输入流的超类 * java.io.Reader * 专门读取文本文件 * * 读取的方法 : read() * int read() 读取1个字符 * int read(char[] c) 读取多个字符 (字符数组) 缓存数组 * * Reader类是抽象类,找到子类对象 FileReader */ public class Demo { public static void main(String[] args) throws IOException{ FileReader fr = new FileReader("c:\\1.txt"); // 创建字符输入流对象。 /*int len = 0 ; while((len = fr.read())!=-1){ // read() 读取一个字符 System.out.print((char)len); }*/ char[] chArr = new char[1024]; int len = 0 ; while((len = fr.read(chArr))!=-1){ // read() 读取多个字符到字符数组中。 System.out.print(new String(chArr,0,len)); } fr.close(); } }