BufferReader:提供缓存进行读文件。BufferedReader会一次性从物理流中读取8k(默认数值,可以设置)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。即使读,也是再 8k。
LineNumberReader:
跟踪行号的缓冲字符输入流。此类定义方法 void setLineNumber(int) 和 int getLineNumber(),它们可分别用于设置和获取当前行号。
默认情况下,行编号从 0 开始。该行号随数据读取递增,并可以通过调用 setLineNumber(int) 进行更改。但要注意,setLineNumber(int) 不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。可认为行是由换行符('\n')、回车符('\r')或回车后面紧跟换行符中的任何一个终止的。
CharArrayReader:实现一个可用作字符输入流的字符缓冲区。
protected char[] buf 字符缓冲区。
protected int count 此缓冲区结尾处的索引。
protected int markedPos 缓冲区中标记的位置。
protected int pos 当前缓冲区位置。
InputStreamReader : 一个 InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。
InputStreamReader 的 read() 方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。为了达到更高效率,考虑用 BufferedReader 封装 InputStreamReader,例如:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
FileReader:FileReader是 InputStreamReader的子类,通常用BufferReader包装起来编程,FileReader默认文件是byte-buffer size的形式。
PipedReader:传送的字符输入流。
StringReader:其源为一个字符串的字符流。