如果不存在,创建一个.txt文件,如果它附加了一个新行
我想创建一个.txt文件并写入它,如果该文件已存在,我只想追加更多的行:如果不存在,创建一个.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#完全陌生。
else if (File.Exists(path))
{
using(var tw = new StreamWriter(path, true))
{
tw.WriteLine("The next line!");
}
}
你只是想在 “追加” 模式打开该文件。
这也是有用的,但我正在寻找一个快速和简单的解决方案,并感谢@Daniel Hilgarth他提供了一个有点解决方案。所以+1。 – 2012-03-28 13:10:20
当您启动的StreamWriter它覆盖文本在那里了。您可以使用附加属性,像这样:
TextWriter t = new StreamWriter(path, true);
else if (File.Exists(path))
{
using (StreamWriter w = File.AppendText(path))
{
w.WriteLine("The next line!");
w.Close();
}
}
另一个很好的答案,很好,谢谢。 +1 – 2012-03-28 13:11:43
string path = @"E:\AppServ\Example.txt";
File.AppendAllLines(path, new [] { "The very first line!" });
参见File.AppendAllText()。 AppendAllLines将为每行添加一个换行符,而不必自己将其放在那里。
如果文件不存在,两种方法都会创建该文件,因此您不必这样做。
这看起来像一个真正的好方法!谢谢。 – 2012-03-28 13:14:47
string [email protected]"E:\AppServ\Example.txt";
if(!File.Exists(path))
{
File.Create(path).Dispose();
using(TextWriter tw = new StreamWriter(path))
{
tw.WriteLine("The very first line!");
tw.Close();
}
}
else if (File.Exists(path))
{
using(TextWriter tw = new StreamWriter(path))
{
tw.WriteLine("The next line!");
tw.Close();
}
}
你实际上并不需要检查文件是否存在,如StreamWriter的会为你做的。如果你以追加模式打开它,文件将被创建,如果它不存在,那么你将永远追加,永远不会写。所以你的初始检查是多余的。
TextWriter tw = new StreamWriter(path, true);
tw.WriteLine("The next line!");
tw.Close();
来自微软的文档,如果不存在,追加到它在一个单一的通话 File.AppendAllText方法(字符串,字符串)
的.NET Framework(当前版本)其他版本
您可以创建文件打开文件,将指定的字符串追加到文件中,然后关闭文件。如果该文件不存在,则此方法创建一个文件,将指定的字符串写入该文件,然后关闭该文件。 命名空间:System.IO 程序集:mscorlib(在mscorlib中。DLL)
语法 C#C++ F#VB 公共静态无效AppendAllText( 路径字符串,字符串 内容 ) 参数 路径 类型:System 文件到指定的字符串追加。 contents 类型:System.String 要附加到文件的字符串。
File.AppendAllText添加一个字符串的文件。如果文件不存在,它也会创建一个文本文件。如果您不需要阅读内容,则效率非常高。用例在日志中。
File.AppendAllText("C:\\log.txt", "hello world\n");
第一个答案, 最简单的答案, 对我笑最有用的答案。 当我看着它时,我是这样的:嗯?只是加入“,真”就够了?我以前怎么看不到?该死......我觉得自己总是哑巴谢谢。我真的很喜欢这些有点好的答案。 – 2012-03-28 13:07:46
提示:如果该文件不存在,则此构造函数将创建一个新文件。 – 2016-03-06 15:09:52
将我包裹在使用中(请参阅下面的答案)。 – 2017-02-01 02:45:58