3

使用 IsolatedStorage API 附加文件并在字符串末尾添加 \n 时,文件为空,如果将其添加到字符串的开头,则会删除文件,然后仅添加请求的数据

    IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();
                string fileContents = "\n"+str+ " " + txtblock1.Text;
                byte[] data = Encoding.UTF8.GetBytes(fileContents);
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream("Th.txt", FileMode.Append, file))
                {
                    stream.Seek(0, SeekOrigin.End);
                    stream.Write(data, 0, data.Length);
                    stream.Close();
                }

那么在这种情况下我应该怎么做才能添加一个新行然后写入文件?

4

1 回答 1

2

我没有遇到过这个问题,但尝试Environment.NewLine使用

string fileContents = Environment.NewLine + str + " " + txtblock1.Text;

\r\n

string fileContents = "\r\n" + str + " " + txtblock1.Text;

一般来说,Environment.NewLine这很好,但在某些情况下,您可能希望对字符进行更多控制,在这种情况下,您可以使用\r\n添加新行。

根据评论进行编辑。Environment.NewLineAppend模式下工作正常。

string fileContents = Environment.NewLine + "test";
byte[] data = Encoding.UTF8.GetBytes(fileContents);

using (var file = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var stream = new IsolatedStorageFileStream("Th.txt", FileMode.Append, file))
    { 
         stream.Write(data, 0, data.Length);
    }

    using (var read = new IsolatedStorageFileStream("Th.txt", FileMode.Open, file))
    {
         var stream = new StreamReader(read, Encoding.UTF8);
         string full = stream.ReadToEnd();
         Debug.WriteLine(full);
    }

}
于 2013-07-29T14:41:42.493 回答