我对附加行有这样奇怪的问题。。。我对Windows手机的开发还很陌生,但我在c sharp编程已经有一段时间了。所以我尝试创建一个保存用户数据的文件(txt文件中的简单行)。我使用以下代码:
byte[] filebytes = System.Text.Encoding.UTF8.GetBytes("blablablabla");
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
var folder = await local.CreateFolderAsync("Data", CreationCollisionOption.OpenIfExists);
var file = await folder.CreateFileAsync("data.txt", CreationCollisionOption.OpenIfExists);
using (var s = await file.OpenStreamForWriteAsync())
{
s.Write(filebytes, 0, filebytes.Length);
}
用于写入文件和
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
if (local != null)
{
var folder = await local.GetFolderAsync("Data");
var file = await folder.OpenStreamForReadAsync("data.txt");
using (StreamReader sr = new StreamReader(file))
{
string line;
while ((line = sr.ReadLine()) != null)
{
TextBlock.Text = line;
}
}
}
我还尝试了许多其他可能的方法来读取/写入文件,但都以相同的结果结束——所有数据都丢失了,文件中只有最后一行。首先,我认为这个问题会出现在s.Write(filebytes, 0, filebytes.Length);
的偏移中,但在其他方法中,它是以其他方式出现的,没有任何帮助。现在我已经改进了代码,它可以工作,但一次读取所有数据并写入所有数据并不是解决方案。谢谢你的建议。
更换
s.Write(filebytes, 0, filebytes.Length);
带
await writer.WriteLineAsync("new entry");