字节数组和 MemoryStream 之间的区别

Difference between a byte array and MemoryStream

提问人:Keith Sirmons 提问时间:8/20/2008 更新时间:5/17/2013 访问量:15799

问:

我正在将二进制文件读入解析程序。我需要遍历文件并查找某些标记,以便将文件拆分并将这些部分传递到它们各自对象的构造函数中。

将文件保存为流(MemoryStream 或 FileStream)是否有好处,还是应该将其转换为 byte[] 数组?

基思

性能 比较

评论


答:

11赞 Timbo 8/20/2008 #1

MemoryStream 基本上是一个带有流接口的字节数组,例如顺序读取/写入和当前位置的概念。

30赞 denis phillips 8/20/2008 #2

A 或 两者都需要将整个文件放入内存中。A 实际上是底层字节数组的包装器。最好的方法是有两个(一个用于输入,一个用于输出)。从输入流中读取,查找用于指示在写入当前输出文件时应分离文件的模式。byte[]MemoryStreamMemoryStreamFileStream

如果输入和输出文件为方案增加价值,则可能需要考虑将输入和输出文件分别包装在 和 中。BinaryReaderBinaryWriter