C#将文本添加到文本文件而不重写它?

时间:2012-03-04 22:54:07

标签: c# file filestream streamwriter

假设我有以下代码:

StreamWriter sw = new StreamWriter(File.OpenWrite(Path));
sw.Write("Some stuff here");
sw.Dispose();

此代码用“Some stuff here”替换文件的内容,但是我想添加文本到文件而不是替换文本。我该怎么做?

6 个答案:

答案 0 :(得分:5)

您需要告诉要附加的StreamWriter

var sw = new StreamWriter(path, true);

File.OpenWrite不支持追加。

答案 1 :(得分:4)

您可以使用File.AppendAllText方法并替换您拥有的3行代码:

File.AppendAllText(Path, "blah");

通过这种方式,您不必担心流并处理它们(即使在出现异常的情况下,这种方式也没有正确执行)并且代码非常简单直接。

答案 2 :(得分:2)

查看System.IO.File.AppendAllText

http://msdn.microsoft.com/en-us/library/ms143356.aspx

你可以做你想做的事情,比如

File.AppendAllText(path, text);

答案 3 :(得分:1)

有一个StreamWriter构造函数,它将bool作为第二个参数,指示编写者如果为true则追加。

答案 4 :(得分:1)

使用append参数:

StreamWriter sw = new StreamWriter(Path, true);

http://msdn.microsoft.com/en-us/library/36b035cb.aspx

答案 5 :(得分:0)

要将文字附加到文件,您可以使用FileMode.Append打开文本。

StreamWriter sw = new StreamWriter(File.Open(Path, System.IO.FileMode.Append));

这只是一种方法。虽然,如果您不明确需要StreamWriter对象,我建议您使用其他人建议的内容:File.AppendAllText