Windows phone 8将行附加到文件

时间:2014-04-22 15:52:49

标签: c# file windows-phone-8

我有一个奇怪的问题,附加线...我对Windows手机的开发很新,但是我在一段时间内编程了。所以我尝试创建用于保存用户数据的文件(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);,但在其他方法中,它以其他方式,没有任何帮助。现在我已经改进了代码,它可以正常工作,但是读取所有数据并一次性写入并不是解决方案。谢谢你的任何建议。

1 个答案:

答案 0 :(得分:0)

替换

    s.Write(filebytes, 0, filebytes.Length);

使用

   await writer.WriteLineAsync("new entry");