文件追加BinaryWriter

时间:2017-05-23 10:13:01

标签: c#

我编写了一个简单的实用函数来收集一堆文本,这样在几轮后,我可以打开文本文件并查看内容。

public static void Accumulate(string text, string path)
{
    var file = File.Open(path, FileMode.Append);

    using ( var binary = new BinaryWriter(file) )
    {
        binary.Write(text);
        file.Close();
    }
}

但是,当我使用分隔符分隔每次运行的输出时,它不会生效。例如,我将作者行更改为binary.Write(text + "\n");然后binary.Write(text , "\n");并尝试:

binary.Write(text);
binary.Write("\n");
file.Close();

但实际上没有一个可行,这可能是因为这是一个二进制编写器,而不是文字文本编写器。正确的吗?

无论如何都要修改这个程序并在输出之间添加一个新的空白行;即每次写作后跳到下一行?

另外,我想知道我是否应该使用file.Flush()代替file.Close()或两者兼而有之?写作后哪一个会确保妥善处理?

2 个答案:

答案 0 :(得分:1)

二进制写入器写入字节,因此您应该使用:

binary.Write (Encoding.UTF8.GetBytes (text + "\n"));

答案 1 :(得分:1)

您应该使用"\r\n"代替"\n",以便新行有效。 所以使用这个:

binary.Write(text + "\r\n");