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

时间:2011-03-21 17:05:39

标签: c# serialization xna

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

我认为在实例化类时可以打开文件流并定期将LIST写入文件;说每600帧左右。一旦将其序列化,我就可以清除列表并再次开始填充它。

这实际上可行吗?我想这是将数据附加到文件中,但我没有谈论过这本书......

如果有人能指出我的方向那么棒。

3 个答案:

答案 0 :(得分:3)

使用FileMode.Append。

将数据附加到文件

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

FileStream Constructor

答案 1 :(得分:1)

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

问题的另一部分,关于何时应该这样做,取决于您的实施。我还建议你以异步方式记录文件,这样应用程序就不会阻止。

答案 2 :(得分:1)

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

因此附加到文本文件,这将正常工作,如下例所示:

http://msdn.microsoft.com/en-us/library/3zc0w663.aspx