为什么我不能使用StreamWriter向文件追加一行
本文关键字:追加 一行 文件 不能 StreamWriter 为什么 | 更新日期: 2023-09-27 18:14:29
为什么我的程序覆盖文件中的同一行?
我想让它在每次使用StreamWriter
时记录一行。
String path = @"c:'Observer'Employer'Employer.txt";
TextWriter write1 = new StreamWriter(path);
if (!File.Exists(path))
{
File.Create(path);
TextWriter write2 = new StreamWriter(path);
write2.WriteLine(Info);
write2.Close();
}
else if (File.Exists(path))
{
write1.WriteLine(Info);
write1.Close();
}
write1.Close();
默认情况下,您使用的重载会覆盖文件。下面是它在被子下面的样子:
public StreamWriter(String path)
: this(path, false, UTF8NoBOM, DefaultBufferSize) {
}
第二个参数告诉它是追加(true)还是覆盖(false)。
你必须明确地告诉它将文本附加到文件中:
TextWriter write1 = new StreamWriter(path, true);
正如@GrantWinney所写,这是预期的行为。无论如何,您可能只想使用
而不是整个代码。File.AppendAllText(path, Info)
。它似乎有你需要的所有功能。见http://msdn.microsoft.com/en-us/library/ms143356.aspx
您需要以追加模式打开文件以便向其中添加行。将第二个可选参数设置为true,如下所示:
TextWriter write1 = new StreamWriter(path, true);