我想从/向文件序列化/反序列化多个对象。语法应类似于:
obj.Append(byteArray);
obj.Append(byteArray);
obj.Append(byteArray);
IEnumerable<byte[]> obj.Extract();
虽然这很容易实现(例如,在内部编写一个使用文件流和protobuf-net的类),但我想知道是否有更优雅的方法。是否有任何类(来自第三方库)使用序列化程序写入文件流?
编辑:我需要将其作为捕获通过网络发送的视频数据的文件流。因此,文件流必须打开一段专用时间。我之前的解决方案是将每个视频帧保存到一个新文件,但它不可扩展(特别是对于硬盘驱动器和增加视频合作伙伴)。
答案 0 :(得分:0)
怎么样:
using(var stream = File.Open(filename, FileMode.Create))
{
var formatter = new BinaryFormatter();
formatter.Serialize(stream, firstObjectToSerialize);
formatter.Serialize(stream, secondObjectToSerialize);
}