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