2015-09-16 39 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接受它作爲答案,如果它的作品,它是解決您的問題。 –

相關問題