FileReader fileReader = new FileReader("xxx");
FileReader.read();
FileReader.read(char[] cbuf);
FileReader.read(char[] cbuf,int off, int len);
FileReader 类的 read 方法三种重载形式
第一种直接读一个字符
第二种读取全部内容到 cbuf 数组中
第三种读取是指从文件off位置读入len这么长的字符串到char数组内
但这三种都是这是通过 IO 读取的内容
读一次,从 IO 获取一次数据
而 BufferedReader
BufferedReader bufReader = new BufferedReader(new FileReader("xxx"));
bufReader.read(char[] cbuf)
bufReader.read(char[] cbuf,int off, int len)
它的 read 方法把数据读到 cbuf 内
就不是单纯通过 IO 了
public BufferedReader(Reader in, int sz)构造函数本身可以接受 sz 来设置缓存大小
默认是 8192 (8k)
它开始会先从 IO 读取 8k 内容到自己设置的内存缓冲区内
调用 bufReader.read 方法时
会从 BufferedReader 缓存区中读取内容
避免每次 read 都通过 IO
实际上减少了 IO 访问次数。
同理
BufferedWriter 和 FileWriter 一样如此
因此
BufferedWriter BufferedReader 会相对更高效。