无法读取JSON文件-FileNotFoundException
本文关键字:文件 -FileNotFoundException JSON 读取 | 更新日期: 2023-09-27 18:25:02
我在这个页面上学习教程http://channel9.msdn.com/Series/Windows-Phone-8-1-Development-for-Absolute-Beginners/Part-22-Storing-and-Retrieving-Serialized-Data因为我希望我的应用程序将数据存储在JSON文件中,然后将其读回。关于教程的2件事:
我按下写按钮-工作正常,然后按下读按钮,它也工作,然而,我关闭win phone 8.1模拟器,再次打开它,按下读按钮我得到了An exception of type 'System.IO.FileNotFoundException'exception!
为什么,我应该有以前运行应用程序的文件在磁盘上?或者当我关闭模拟器时,它会被删除吗?此外,我在磁盘上查找指定的文件,但找不到!有什么帮助吗?
private const string JSONFILENAME = "data.json";
private async Task readJsonAsync()
{
string content = String.Empty;
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(JSONFILENAME);
using (StreamReader reader = new StreamReader(myStream))
{
content = await reader.ReadToEndAsync();
}
resultTextBlock.Text = content;
}
private async Task writeJsonAsync()
{ // Notice that the write is ALMOST identical ... except for the serializer.
var myCars = buildObjectGraph();
var serializer = new DataContractJsonSerializer(typeof(List<Car>));
using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
JSONFILENAME,
CreationCollisionOption.ReplaceExisting))
{
serializer.WriteObject(stream, myCars);
}
resultTextBlock.Text = "Write succeeded";
}
关闭Emulator时,其状态不会保留,这意味着重新启动Emulator时测试的应用程序不存在。因此,当您再次打开模拟器时,VS将进行新的安装。
重建项目时也会发生同样的情况。然后,VS将从模拟器中删除该应用程序,并从头开始重新安装。这反过来也会导致丢失JSON文件。
当你想确保你的数据被保留时,不要关闭模拟器,只需在VS中使用Build(VS会不时决定重建你的应用程序)。
为了更正确地测试你的应用程序,我建议你看看Windows Phone电源工具(http://wptools.codeplex.com/)。在那里,您可以显式地选择安装或更新给定的XAP包。