BufferedStream和MemoryStream在应用程序方面有什么区别?由于MemoryStream可以随时刷新到文件中,难道它无法取代BufferedStream吗?
Jon*_*eet 35
BufferedStream只是现有流的缓冲区.MemoryStream是整个流的缓冲区- 它不链接到另一个流.您可以随时要求它将自己写入另一个流,但这不是一回事.
缓冲的一个主要原因是避免频繁写入昂贵的资源.但是,这并不意味着您希望缓冲内存中的所有数据 - 这足以避免非常小的写入.例如,如果FileStream没有自己的缓冲策略,那么BufferedStream即使你写入数兆字节的数据,包装它也可能最终只有8K的缓冲区.正如评论中所指出的那样,FileStream有足够的缓冲BufferedStream与其结合使用是毫无意义的.
BufferedStream必须由其他一些现有的Stream初始化.一个简单的关闭触发缓冲区刷新到底层流.使用非内存流但需要(自动)缓冲时需要它.
MemoryStream 可以单独存在,但也可以像你所说的那样"明确地"刷新到其他流.
如果你的工作只是在内存上,最好使用MemoryStream.否则,BufferedStream.