C# UWP appdata中Json序列化存储文件的最大大小
我正在尝试使用Json将文件保存到UWP应用程序中的本地appdata。 代码在文件夹中创建一个文件,然后使用Json将数据对象写入其中。以下是我使用的代码:C# UWP appdata中Json序列化存储文件的最大大小,c#,json,uwp,storagefile,C#,Json,Uwp,Storagefile,我正在尝试使用Json将文件保存到UWP应用程序中的本地appdata。 代码在文件夹中创建一个文件,然后使用Json将数据对象写入其中。以下是我使用的代码: StorageFile file = await localstorage.CreateFileAsync("filename.json", CreationCollisionOption.ReplaceExisting) var filestream = await file.OpenStreamForWriteAsync();
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,并在对象中间停止。
我找不到任何关于这些对象(流、存储文件、Json序列化程序等)的大小限制的提及有人能解释为什么序列化停止在16KB吗?使用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);
}
谢谢您的回答。writer.Flush()出现在我的脑海中,但我现在不太确定。请尝试处理filestream、writer等。最佳使用使用语句。这似乎已经解决了它。谢谢