自定义标头/元数据文件

时间:2015-06-16 19:40:13

标签: c# arrays file header byte

我需要编写一些写X个字节的代码:

byte[] byteArray = MyFunc.getData();
File.WriteAllBytes(fileName, byteArray);

这完美的工作。接下来我需要在文件的末尾或开头编写自定义对象,我执行以下操作:

byte[] myObjectArray;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
      {
        bf.Serialize(ms, myObject);
        myObjectArray = ms.ToArray();
      }

现在我的问题是:拥有这个新的字节数组,如何从文件中写入和读取它?我写的第一个字节数组有可变的字节数,第二个字节数也可以有不同的维数。 你能帮我么?感谢。

2 个答案:

答案 0 :(得分:0)

我不确定你在问什么,但如果你质疑的只是将新的字节数组写到文件末尾,只需打开流到文件并使用stream.write(byte[], int, int)方法。如果您将来需要找到该数组,我建议制作某种标记,告诉您“这是您搜索的对象”,例如:

[xxxxx byte [] xxxxx] [#### MARKER ####] [xx byte [] xx]

如您所见,标记之后的每个字节都是您搜索的数组。

答案 1 :(得分:0)

使用MemoryStream.WriteToStream。请参阅here

根据你想要做的事情(覆盖文件,附加到它等),你可能需要这样的东西:

ms.WriteTo(File.Create("./path/to/file");