我编写了一个简单的实用函数来收集一堆文本,这样在几轮后,我可以打开文本文件并查看内容。
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()
或两者兼而有之?写作后哪一个会确保妥善处理?
答案 0 :(得分:1)
二进制写入器写入字节,因此您应该使用:
binary.Write (Encoding.UTF8.GetBytes (text + "\n"));
答案 1 :(得分:1)
您应该使用"\r\n"
代替"\n"
,以便新行有效。
所以使用这个:
binary.Write(text + "\r\n");