19

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

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

基思

4

2 回答 2

26

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

如果它们为您的场景增加价值,您可能需要考虑将输入和输出文件分别包装在 aBinaryReader和中。BinaryWriter

于 2008-08-19T21:12:20.040 回答
9

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

于 2008-08-19T21:06:55.747 回答