我需要编写一些写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();
}
现在我的问题是:拥有这个新的字节数组,如何从文件中写入和读取它?我写的第一个字节数组有可变的字节数,第二个字节数也可以有不同的维数。 你能帮我么?感谢。
答案 0 :(得分:0)
我不确定你在问什么,但如果你质疑的只是将新的字节数组写到文件末尾,只需打开流到文件并使用stream.write(byte[], int, int)
方法。如果您将来需要找到该数组,我建议制作某种标记,告诉您“这是您搜索的对象”,例如:
[xxxxx byte [] xxxxx] [#### MARKER ####] [xx byte [] xx]
如您所见,标记之后的每个字节都是您搜索的数组。
答案 1 :(得分:0)
使用MemoryStream.WriteTo
,Stream
。请参阅here。
根据你想要做的事情(覆盖文件,附加到它等),你可能需要这样的东西:
ms.WriteTo(File.Create("./path/to/file");