Java中使用BufferedReader读取文件的好处

来于:http://segmentfault.com/q/1010000000422506

  • 没有缓冲区时,每次读取操作都会导致一次文件读取操作(就是告诉操作系统内核我要读这个文件的这个部分,麻烦你帮我把它取过来)。
  • 有缓冲区时,会一次性读取很多数据,然后按要求分次交给上层调用者。

读取块大小通常是按最适合硬件的大小来读的,因为对于硬件来说,一次读取一块连续数据(比如 1K)和一次读取一个字节需要的时间几乎是一样的(都是一次读操作,只是最终提交的数据量有差异)。带缓冲的 I/O 和不带缓冲的相比效率差异是非常显著的,你可以自行写程序测试。

说到java reader缓存, 其实有两层缓存:

  1. OS缓存, 把磁盘数据 读入内存, 通过read ahead, io scheduler等减少磁盘读取次数.
  2. App缓存, 做缓存/预读, 即BufferredReader的角色.

BufferredReader的作用, 我的理解, 一) 减少System Call次数; 二) 减少磁盘读取次数.

发布了244 篇原创文章 · 获赞 799 · 访问量 234万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览