java io 中BufferedReader缓冲区提高效率的问题

2025-04-16 10:46:18
推荐回答(4个)
回答1:

道理很简单,假设你要读取一个文本文件输出到屏幕,一次读一个字节,然后赋值给声明的一个变量,那么需要读取很多次,如果用了BufferedReader,就可以一次把所有的字节都读取到缓冲区,然后再一次性赋值给变量,效率自然就提高了,写文件时也一样,一次写一个字,和一次写1篇文章的区别.

回答2:

BufferedReader可以一次读一行。。而普通的一次只能读一个字符。。

普通reader读一次就是执行一次那个方法。。相当于我执行一次。。你要执行N次。。

所以效率高。。

并且老是去读硬盘对硬盘伤害很大。。

回答3:

io 是耗时的 同时还要处理中断
内存的读写则是很快的
所以理论上 io 读取时,次数越少越好
所以用 BufferedReader 相当于一次读了 很多数据,然后放到内存中方便别人使用。这肯定比 一个 byte 一个 byte 的 读 在效率上提高很多

回答4:

javaAPI上都有的

通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,

BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。