java-io流缓冲区的小疑问

当我们从流中往外设写东西时,利用缓冲区可以提高速度。原理是用流直接往缓冲区中写数据,等到缓冲区满了,再一次性往外设中写。这里的一次性指的还是一个字节一个字节往外设写吧?那... 当我们从流中往外设写东西时,利用缓冲区可以提高速度。原理是用流直接往缓冲区中写数据,等到缓冲区满了,再一次性往外设中写。这里的一次性指的还是一个字节一个字节往外设写吧?
那如果我从外设往流中读数据时,利用缓冲区的话,好像不会有什么提高速度的作用吧?(程序还是得花时间等外设往缓冲区中写数据)
所以我认为利用缓冲区往外设写东西可以程序运行速度,但是如果利用缓冲从外设读入流中,不会使程序提高速度吧?(感觉外设-->缓冲等效于 外设-->流)
请大虾们指点!!!
大虾,我还步太明白:
不用缓冲区,CPU直接将文件写入外设,是按字节写入
而用缓冲区,当缓冲区满了时,也是靠CPU将文件写入外设,
既然都是通过cpu,只不过用缓冲区写入外设要稍晚点才会用到CPU,但总是得还是要用CPU将文件一个字节一个字节写入,这样的话有没有缓冲区不是一样??
展开
 我来答
蓝老K
2007-06-13 · TA获得超过168个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:164万
展开全部
你问的问题很有研究性,要处理的文件很小的时候这样的确看不出来你说的区别,缓冲区是个可以重用的内存区,这个主要是用于CPU提高读取文件的效率,而CPU的速度是远远高与内存的,假设你没有这个缓冲区的话,CPU就会要不停的读取文件,当在读取较大的文件时,这样处理效率是不是很低呢?内存速度慢,你这样一个字节一个字节的送的话是不是整体的效率都低了啊?当你有缓冲的时候CPU在等缓冲区写满时是不是可以处理其它的信息呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式