黑马程序员技术交流社区

标题: 字节流缓冲区的问题 [打印本页]

作者: flying    时间: 2014-2-19 15:02
标题: 字节流缓冲区的问题
假设缓冲区的大小为1024字节 那么读文件的时候 是一次读取1024字节数据到内存 还是一个字节一个字节的读
如果是一次性读到内存中 ,那么他调用了什么方法 ,如果是一个一个的读那么效率是不是和不用缓冲区的效率差不多呢
毕老师视频截图如下
作者: ___________゛M    时间: 2014-2-19 15:05
应该是一次读1024吧  。
作者: asvsass    时间: 2014-2-19 15:14
底层都是调用读一个方法  因为读一个写一个效率很慢 所以先把读到的数据存到数组中 然后再写
作者: flying    时间: 2014-2-19 15:16
如果一次读一个这样的效率不是和不用缓冲流一样吗
作者: asvsass    时间: 2014-2-19 15:29
比如1000字节 文件 你如果从D盘复制到E盘 你读一个写一个 内存中读写流跳到写出流 就要跳1000次 很影响效率
用缓冲流存起来 就要读写1一次就好了
作者: 张东健    时间: 2014-2-19 15:54
通俗打个比方,你搬1000快砖,从操场东头搬到西头,一次搬一块,你想想要来回1000次吧,搞个卡车,一次装完就运输过去,你说效率呢
作者: 徐芾清    时间: 2014-2-19 19:09
应该是一次读1024byte,底层应该也是一个一个的读,毕竟硬盘读数据是要用磁头一个字节一个字节的扫描。跟一次读一个的区别应该是占用一次IO资源,访问一次硬盘可以读取1024byte。如果一个一个读需要利用IO资源1024次,频繁的占用IO资源效率很低。个人认为这样其实是利用内存空间换取计算时间,如果内存够大,一次多读取些,也就是用更大的空间,应该是能够换取更多的时间。不知道这样分析对不对。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2