我创建了一个应用程序,我将数据插入到该文件中。它工作正常。以下是我的代码:
private async void btnSearch_Click(object sender, RoutedEventArgs e)
{
UserDetails details = new UserDetails
{
Name= TxtName.Text,
Course= TxtCouse.Text,
City=TxtCity.Text
};
string jsonContents = JsonConvert.SerializeObject(details);
StorageFolder localFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Storage", CreationCollisionOption.ReplaceExisting); ;
StorageFile textFile = await localFolder.CreateFileAsync("UserDetails.txt", CreationCollisionOption.ReplaceExisting);
using (IRandomAccessStream textStream = await textFile.OpenAsync(FileAccessMode.ReadWrite))
{
// write the JSON string!
using (DataWriter textWriter = new DataWriter(textStream))
{
textWriter.WriteString(jsonContents);
await textWriter.StoreAsync();
}
}
this.Frame.Navigate(typeof(BlankPage1));
}
现在我想要的是,当用户输入新数据时,数据将附加到同一现有文件中。
答案 0 :(得分:0)
将数据附加到JSON文本文件意味着要对文件进行一些解析以找到插入文本的正确位置。也就是说,因为JSON是用{}分隔符构成的,所以只是将文本附加到文件末尾并不是一件简单的事情。
鉴于您的数据看起来不那么大,最简单的方法是将JSON从现有文件反序列化到内存中,将其他属性添加到该数据结构,然后序列化回JSON。在这种情况下,您可能只想在应用程序会话期间维护内存中的结构,并且只需在需要时使用新数据覆盖该文件。但是当然你也可以重新打开文件,将JSON读/解到内存中,然后重写内容。