我有這兩種寫入和讀取文件的方法。如何正確讀取windows phone開發中的獨立文件
public static async Task WriteDataToFileAsync(string fileName, string content)
{
byte[] data = Encoding.Unicode.GetBytes(content);
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
using (var s = await file.OpenStreamForWriteAsync())
{
await s.WriteAsync(data, 0, data.Length);
}
}
public async static Task<string> ReadFileContentsAsync()
{
var folder = ApplicationData.Current.LocalFolder;
try
{
var file = await folder.OpenStreamForReadAsync("MenuData.json");
using (var streamReader = new StreamReader(file))
{
Debug.WriteLine(streamReader.ReadToEnd());
return streamReader.ReadToEnd();
}
}
catch (Exception)
{
return string.Empty;
}
}
然後將其在這兩個方法
public static async void ApiToFileRestaurants()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = client.GetAsync("http://bonar.si/api/restaurants").Result;
response.EnsureSuccessStatusCode();
string responseBody = response.Content.ReadAsStringAsync().Result;
await Restaurant.WriteDataToFileAsync("MenuData.json", responseBody);
}
public async static Task<List<Restaurant>> FileToRestaurantList()
{
var responseBody = await Restaurant.ReadFileContentsAsync();
List<Restaurant> parsedRestaurants = (List<Restaurant>)Newtonsoft.Json.JsonConvert.DeserializeObject(responseBody, typeof(List<Restaurant>));
return parsedRestaurants;
}
這裏所用現在我的問題是,ReadFileAsync
不回我知道保存在MenuData.json
文件的結果,而是返回空字符串。
我大部分是從msdn documentation得到這個源代碼。
文件在我的wp電源工具中的位置看起來像that。 我是一個新手程序設計師,所以我可能忽略了別的東西
您確定api調用在讀取調用執行之前完成了寫入嗎? – Paul
@Paul是的,我很確定現在完成了一些測試之後現在我做了一些測試 – buco
您是否看到一個條件,其中的內容在您的調試窗口中,但不在您的應用程序中? – Paul