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

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

基思

有帮助吗?

解决方案

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

您可能需要考虑将输入和输出文件包装在 BinaryReaderBinaryWriter 分别是否它们为您的场景增加了价值。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top