2

我正在尝试使用 Json 将文件保存到 UWP 应用程序中的本地应用程序数据。代码在文件夹中创建一个文件,然后使用 Json 将数据对象写入其中。这是我使用的代码:

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 处停止?

4

1 回答 1

1

使用usingRomasz 建议的语句,从而处理文件流、编写器等似乎解决了我的问题。

新代码:

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

谢谢您的回答。

于 2015-12-15T18:02:20.217 回答