C# 为什么我不能使用StreamWriter向文件追加一行?

C# 为什么我不能使用StreamWriter向文件追加一行?,c#,C#,为什么我的程序会覆盖文件中的同一行 我希望每次使用StreamWriter时它都能记录一行 正如@GrantWinney所写,这是预期的行为。无论如何,您可能希望使用 File.AppendAllText(path, Info) 相反。它似乎拥有您所需要的所有功能。请参见默认情况下,您使用的重载将覆盖文件。下面是它在封面下的样子: public StreamWriter(String path) : this(path, false, UTF8NoBOM, DefaultBuffer

为什么我的程序会覆盖文件中的同一行

我希望每次使用StreamWriter时它都能记录一行


正如@GrantWinney所写,这是预期的行为。无论如何,您可能希望使用

File.AppendAllText(path, Info)

相反。它似乎拥有您所需要的所有功能。请参见

默认情况下,您使用的重载将覆盖文件。下面是它在封面下的样子:

public StreamWriter(String path) 
    : this(path, false, UTF8NoBOM, DefaultBufferSize) {
}
第二个参数告诉它是附加true还是覆盖false

您必须明确告诉它将文本附加到文件:

TextWriter write1 = new StreamWriter(path, true);

您需要以追加模式打开文件,以便向其添加行。使用设置为true的可选第二个参数,如下所示:

TextWriter write1 = new StreamWriter(path, true);

您需要打开文件进行附加。您正在打开文件并将写光标放在开头。在某个地方有这样的背景;在MSDN上查找它。此外,在尝试使用StreamReader打开文件之前,应该检查文件是否存在。此外,您的第二个文件.Exists是多余的。我使用true作为第二个参数进行附加,它可以正常工作thx:D
TextWriter write1 = new StreamWriter(path, true);