C#中的二进制序列化-附加到文件

C#中的二进制序列化-附加到文件,c#,serialization,xna,C#,Serialization,Xna,我正在做一个项目,我将用户输入记录到一个列表中,并将这些信息序列化到一个二进制文件中。到目前为止,我可以在PadState列表中记录用户在gamepad上的输入,并序列化此信息,但此时它只会在会话结束后序列化。换句话说,我必须在录制的整个过程中都将padstate列表保存在内存中。显然,这并不理想,因为我占用了内存,当它变得太大时,会使程序崩溃 我在想,在实例化一个类并定期将列表写入文件时,可能会打开一个文件流;大约每600帧。一旦这被序列化,我就可以清除列表并再次开始填充它 这真的可能吗?我猜

我正在做一个项目,我将用户输入记录到一个列表中,并将这些信息序列化到一个二进制文件中。到目前为止,我可以在PadState列表中记录用户在gamepad上的输入,并序列化此信息,但此时它只会在会话结束后序列化。换句话说,我必须在录制的整个过程中都将padstate列表保存在内存中。显然,这并不理想,因为我占用了内存,当它变得太大时,会使程序崩溃

我在想,在实例化一个类并定期将列表写入文件时,可能会打开一个文件流;大约每600帧。一旦这被序列化,我就可以清除列表并再次开始填充它

这真的可能吗?我猜它是在文件中添加数据,但我所读过的书中没有一本提到这一点

如果有人能为我指明方向,那就太好了。

您可以使用将数据附加到现有文件中。链接的MSDN文章中有一个例子


问题的另一部分,关于何时应该这样做,实际上取决于您的实现。我还建议您异步登录文件,这样应用程序就不会阻塞。

将数据附加到文件是使用FileMode.Append完成的

这可以在构造FileStream对象时指定


为什么要附加到二进制文件?附加不起作用。无法正确读取数据--追加是文本文件的领域。

因此,附加到一个文本文件,这将很好地工作,如本例所示:


好的。我现在就试试这个。我认为这绝对是可能的,(至少我觉得这是有道理的,为什么它应该是可能的),但我再次发现我不能做很多我认为是自然的事情。