字节数组和MemoryStream之间的区别

时间:2020-03-05 18:40:53  来源:igfitidea点击:

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

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

基思

解决方案

回答

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

回答

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

如果输入和输出文件可以增加方案的价值,则可能需要考虑将它们分别包装在" BinaryReader"和" BinaryWriter"中。