我正在将二进制文件读入解析程序。我将需要遍历文件并查找某些标记,以便我可以将文件拆分并将这些部分传递到它们各自对象的构造函数中。
将文件保存为流(MemoryStream或FileStream)还是将其转换为byte []数组是否有优势?
基思
答案 0 :(得分:25)
byte[]
或MemoryStream
都需要将整个文件存入内存。 MemoryStream
实际上是底层字节数组的包装器。最好的方法是有两个FileStream
(一个用于输入,一个用于输出)。从输入流中读取,查找用于指示在写入当前输出文件时应分离文件的模式。
如果输入和输出文件为您的方案增加价值,您可能需要考虑将输入和输出文件分别包装在BinaryReader
和BinaryWriter
中。
答案 1 :(得分:8)
MemoryStream基本上是一个带有流接口的字节数组,例如:顺序读/写和当前位置的概念。