我正在嘗試使用模式對象的字典編寫二進制文件。但是,我目前面臨的問題是,我的二進制文件總是隻有一個模式對象。只要將它添加到字典中,先前的模式對象就會被重新編寫爲。爲什麼我的二進制文件每次都會被重寫?
我無法看到它是如何做的,因爲我在創建數據流後序列化整個字典。所以它應該最終將所有模式對象寫入二進制文件。
這裏是代碼片段:
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