我正在将一个二进制文件读入一个解析程序。我将需要遍历文件并查找某些标记,以便将文件拆分并将这些部分传递到各自对象的构造函数中。
将文件保存为流(MemoryStream或FileStream)是否有好处,还是应该将其转换为byte []数组?
基思
最佳答案
byte[]
或MemoryStream
都需要将整个文件带入内存。 MemoryStream
实际上是底层字节数组的包装器。最好的方法是使用两个FileStream
(一个用于输入,一个用于输出)。从输入流中读取以查找用于指示文件的模式,同时在写入当前输出文件时应将其分开。
如果将输入和输出文件添加到方案中,则可能需要考虑将它们分别包装在BinaryReader
和BinaryWriter
中。
关于performance - 字节数组和MemoryStream之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16939/