所以,我終於得到了我的列表視圖內容序列化和寫入文件,所以我可以在不同的會話恢復我的應用程序的狀態。現在我想知道是否有一種方法可以增量序列化並保存我的數據。目前,我把我的炫魅的即時存檔方法這個方法:的Windows Store應用增量系列化
private async void writeToFile()
{
var f = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("data.txt", CreationCollisionOption.ReplaceExisting);
using (var st = await f.OpenStreamForWriteAsync())
{
var s = new DataContractSerializer(typeof(ObservableCollection<Item>),
new Type[] { typeof(Item) });
s.WriteObject(st, convoStrings);
}
}
我覺得這是比較理想的是,因爲它是產生寫出來的數據存儲,所以我沒有序列化我的整個列表中,但我不知道是否有可能增量序列化我的收藏,如果是這樣,我該怎麼做?
請注意,我的數據在生成後沒有更改,所以除了將新數據添加到當前序列化列表的末尾之外,我不必擔心其他任何操作。
我目前正在保存我的數據,當應用程序關閉時,但我同意做一個更好的方法是保存它作爲集合被修改,但我不知道如何增量保存此信息使用序列化。我不想在每次保存時重新編寫整個集合,因爲舊數據不會更改,只會添加集合,而不會進行其他修改。所以我想能夠「追加」到我目前的序列化數據。 – Nelz11
附加數據很容易,但如果文件中間的數據發生變化,該怎麼辦?您必須讀取整個文件,找到更改的數據所在的位置並覆蓋該字節。如果你以前的數據少於新的數據?你將不得不重寫所有的字節等後,我不知道是否有什麼內置的做... – GameScripting
我的數據不會改變,只有新的數據被添加。所以,當添加新數據時,我想要使用序列化的字符串並將其更新爲包含此新數據... – Nelz11