我想创建一个.txt文件并将其写入,如果该文件已经存在,我只想追加一些行:
string path = @"E:\AppServ\Example.txt";
if (!File.Exists(path))
{
File.Create(path);
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The very first line!");
tw.Close();
}
else if (File.Exists(path))
{
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The next line!");
tw.Close();
}
但是第一行似乎总是被覆盖...如何避免在同一行上写(我在循环中使用它)?
我知道这是一件非常简单的事情,但是我以前从未使用过该WriteLine
方法。我是C#的新手。
File.Open
内部委托WinAPI函数(请参阅下一条注释)有望防止出现竞争情况。这里的大多数解决方案都不会这样做,并且很明显要受比赛条件的影响。
if (file exists) { open file }
在所有编程语言中,模式几乎总是错误的!对于.NET,解决方案是使用File.Open(path, FileMode.Append, FileAccess.ReadWrite)
适当的标志。