首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在应用方面,BufferedStream和MemoryStream有什么不同?

在应用方面,BufferedStream和MemoryStream有什么不同?
EN

Stack Overflow用户
提问于 2009-09-17 16:06:12
回答 2查看 21.8K关注 0票数 23

在应用方面,BufferedStream和MemoryStream有什么不同?既然MemoryStream可以随时刷新到文件中,那么它就不能取代BufferedStream吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-17 16:09:25

BufferedStream只是现有流上的一个缓冲区。MemoryStream是整个流的缓冲区-它不会链接到另一个流。您可以要求它在任何时候将自身写入另一个流,但这不是一回事。

缓冲的主要原因之一是避免频繁地写入昂贵的资源。然而,这并不意味着您想要缓冲内存中的所有数据-只是足够避免非常小的写操作。例如,如果FileStream没有自己的缓冲策略,那么在BufferedStream中包装它可能最终只有8K的缓冲区,即使您写入兆字节的数据。正如评论中指出的那样,FileStream has enough buffering that using BufferedStream in conjunction with it is pointless

票数 37
EN

Stack Overflow用户

发布于 2009-09-17 16:18:21

BufferedStream必须由其他现有的流进行初始化。简单的close会触发将缓冲区刷新到底层流。在处理非内存流时需要它,但您需要(自动)-buffering。

MemoryStream可以独立存在,但也可以像您所说的那样“显式地”刷新到其他流中。

如果您的工作只在内存上进行,则最好使用MemoryStream。否则,返回BufferedStream。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1439798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档