2015-12-15 84 views
2

我正嘗試使用Json將文件保存到UWP應用程序中的本地appdata。 代碼在文件夾中創建一個文件,然後使用Json將數據對象寫入它。下面是我使用的代碼:在UWP appdata中Json序列化StorageFile上的最大大小

StorageFile file = await localstorage.CreateFileAsync("filename.json", CreationCollisionOption.ReplaceExisting)  
var filestream = await file.OpenStreamForWriteAsync(); 
var writer = new StreamWriter(filestream); 
var jsonwriter = new JsonTextWriter(writer); 
var serializer = new JsonSerializer(); 
serializer.TypeNameHandling = TypeNameHandling.All; 
serializer.Serialize(jsonwriter, DataObject); 

立即這似乎工作,文件似乎是成功保存,但是打開文件手動發現,正是16KB和對象的中間停止。

我一直無法找到一個大小限制的任何提及任何這些對象(流,StorageFile,JSON序列等)

任何人都可以解釋爲什麼系列化停在16KB?

+1

writer.Flush()想到了,但我現在還不太確定。 – Biscuits

+2

也嘗試處理文件流,作家等。最好的使用'使用'語句。 – Romasz

+0

這似乎已修復它。謝謝! – Sinisterpete

回答

1

使用using陳述作爲Romasz建議,從而處置文件流,作家等似乎已經解決了我的問題。

新代碼:

StorageFile file = await createFile("filename.json"); 
using (JsonTextWriter jsonwriter =new JsonTextWriter(new StreamWriter(await file.OpenStreamForWriteAsync()))) 
{ 
    var serializer = new JsonSerializer(); 
    serializer.TypeNameHandling = TypeNameHandling.All; 
    serializer.Serialize(jsonwriter, DataObject); 
} 

謝謝您的回答。