我正在尝试使用模式对象的字典编写二进制文件。但是,我目前面临的问题是,我的二进制文件总是只有一个模式对象。只要将它添加到字典中,先前的模式对象就会被重新编写为。为什么我的二进制文件每次都会被重写?
我无法看到它是如何做的,因为我在创建数据流后序列化整个字典。所以它应该最终将所有模式对象写入二进制文件。
这里是代码片段:
Pattern newPatternObject = new Pattern(filename, savedDistanceList, patternTangibleList);
PatternDictionary.Add(filename, newPatternObject);
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("Pattern.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, PatternDictionary);
stream.Close();
任何帮助将非常感激。谢谢。
我的第一个猜测是,你正在创建一个新的字典中的每个时间,但您所提供的代码不表示任何一种方式。您是否确认字典的“计数”是您认为在序列化之前的情况? – jmcilhinney
我不知道C#的事情,但我认为,而不是'FileMode.Create'你想'FileMode.Append'。 – Mort
@jmcilhinney是的,我没有检查计数及其全局字典,我只是添加模式对象,每当一个新的创建。 – Naaz