2015-09-16 41 views
0

我正在尝试使用模式对象的字典编写二进制文件。但是,我目前面临的问题是,我的二进制文件总是只有一个模式对象。只要将它添加到字典中,先前的模式对象就会被重新编写为为什么我的二进制文件每次都会被重写?

我无法看到它是如何做的,因为我在创建数据流后序列化整个字典。所以它应该最终将所有模式对象写入二进制文件。

这里是代码片段:

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(); 

任何帮助将非常感激。谢谢。

+0

我的第一个猜测是,你正在创建一个新的字典中的每个时间,但您所提供的代码不表示任何一种方式。您是否确认字典的“计数”是您认为在序列化之前的情况? – jmcilhinney

+0

我不知道C#的事情,但我认为,而不是'FileMode.Create'你想'FileMode.Append'。 – Mort

+0

@jmcilhinney是的,我没有检查计数及其全局字典,我只是添加模式对象,每当一个新的创建。 – Naaz

回答

3

您FileMode.Create更改为FileMode.Append

+0

我的意思是FileMode.Create到FileMode.Append – CodeWhore

+0

@Naaz接受它作为答案,如果它的作品,它是解决您的问题。 –

相关问题