您的位置:首页 > Web前端

BufferedReader,BufferedWriter 为什么比 FileReader 和 FileWriter高效

2016-08-19 09:39 357 查看
FileReader fileReader   = new FileReader("xxx");
FileReader.read();
FileReader.read(char[] cbuf);
FileReader.read(char[] cbuf,int off, int len);


中 cbuf 的意思

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)


包装 FileReader 之后

它的 read 方法把数据读到 cbuf 内

就不是单纯通过 IO 了
public BufferedReader(Reader in, int sz)
构造函数本身可以接受 sz 来设置缓存大小

默认是 8192 (8k)

它开始会先从 IO 读取 8k 内容到自己设置的内存缓冲区内

调用 bufReader.read 方法时

会从 BufferedReader 缓存区中读取内容

避免每次 read 都通过 IO

实际上减少了 IO 访问次数。

同理

BufferedWriter 和 FileWriter 一样如此

因此

BufferedWriter BufferedReader 会相对更高效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐