关于BufferedStream类的问题

woshishe 2012-11-27 11:53:41
资料上说BufferedStream就是给另一流上的读写操作添加一个缓冲区,可以提高性能。可是我不是太理解是怎么样的一个过程,比如我初始化一个FileStream,用这个FileStream初始化一个BufferedStream,来读取文件的内容到一个字节数组,这个读取过程应该是将磁盘的信息读取到内存中吧,缓冲区应该也是在内存里吧,为什么就能提高性能?依我看来,中间加了个缓冲区,不是会降低读取的速度吗?请高手给解释一下...
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ksq2010 2012-11-27
  • 打赏
  • 举报
回复
这样的话,就会使得当操作系统读取数据的时候,可以保证操作系统可以读取完我们的缓冲的数据,操作系统通过判断缓冲区的数据是否读取完毕,而进行读取读取,这样提高了操作系统的性能。如果不使用缓冲区,会造成操作系统不知道数据是否接收完整,而去拼命读取,就和你口渴了,想去喝水,却不知道水龙头那有没有水,但是如果放置一个杯子,让杯子去接水,当你看到水杯已经装满的时候,你再去喝 是一个道理。
ksq2010 2012-11-27
  • 打赏
  • 举报
回复
由于操作系统的多任务性,有时候我们读取的数据或者通过通信读取的数据不一定可以实时的立即处理,所以要建立缓冲区先暂存下来,等合适的实际再做处理。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧