如何创建多个文本数据列表并将其保存到隔离存储中? 我还需要检索并显示不同的已保存列表。
我正在做一个类似饮料清单的应用程序,用户可以创建包含多种不同饮料的多种饮品清单。
我现在只能创建并保存一份饮料文字列表。如果我要再次在列表中添加更多饮料文本并保存,则列表将被最新的不同饮料文本覆盖。
//保存饮料文字列表
private void addListBtn_Click(object sender, RoutedEventArgs e)
{
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
storage.CreateDirectory("ListFolder");
StreamWriter writeFile = new StreamWriter(new IsolatedStorageFileStream("ListFolder\\savedList.txt", FileMode.OpenOrCreate, storage));
for (int i = 0; i < (Application.Current as App).userDrinksList.Count; i++)
{
String drink = (Application.Current as App).userDrinksList[i].ToString();
writeFile.WriteLine(drink.ToString());
}
writeFile.Close();
MessageBox.Show("List added into favourite list.");
}
//显示已保存的列表
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
StreamReader readFile = null;
{
readFile = new StreamReader(new IsolatedStorageFileStream("ListFolder\\savedList.txt", FileMode.Open, storage));
listNumberListBox.Items.Add(readFile.ReadToEnd());
readFile.Close();
}
}
答案 0 :(得分:0)
您将其另存为savedList.txt。您需要将每个列表另存为单独的文件。例如list1.txt,list2.txt等。
也许您还需要一个列表列表,以便您知道哪个文件=哪个列表。
答案 1 :(得分:0)
您的addListBtn_Click方法假设它可以在Application实例的userDrinksList成员中找到饮料列表,但是您的PhoneApplicationPage_Loaded方法不会填充该成员。
在您的PhoneApplicationPage_Loaded方法中,您可以执行以下操作:
using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
using(var stream = storage.OpenFile("ListFolder\\savedList.txt", FileMode.Open))
using(StreamReader readFile = new StreamReader(stream))
{
for (string line = readFile.ReadLine(); line != null; line = readFile.ReadLine())
{
listNumberListBox.Items.Add(line);
((App) Application.Current).userDrinksList.Add(line)
}
}
'使用'确保资源正确关闭/处置,因此您无需显式关闭。您正在阅读完整的内容 - 您需要逐行阅读。