MemoryStream vs一个字节数组

8 .net arrays byte memorystream

在使用MemoryStream时,我发现自己经常将数据复制(因此复制)到一个临时的字节数组.

我认为这有点浪费资源,因为MemoryStream不会让你直接访问底层的字节数组.

在这种情况下,MemoryStream的真正优势是什么?我在某处读过它就像一个内存映射文件.数据仅在访问时从磁盘传输,消耗更少的内存.

真的吗?我不这么认为.也许是FileStream的情况?

谢谢你的澄清.

Chr*_*her 4

对我来说,内存流的主要优点是它动态增长,并为此进行了优化。必须将其复制出来并复制内存是一件痛苦的事情,但是如果您主要使用它是构建一个要在进程结束时移交的缓冲区,那么该缺陷会在一定程度上得到摊销。

我应该补充一点,与 FileStream 相比,MemoryStream 速度要快得多。它们的大小比 FileStream 更受限制,因为磁盘空间通常比 RAM 大得多。所以你必须决定你需要速度还是空间。