在C#中附加文本

时间:2011-08-24 10:16:33

标签: c# .net windows

将方法更改为AppendText时,例如writeout.AppendText(firstline)我得到StreamWriter不支持...

StreamWriter writeout = new StreamWriter(path);
        writeout.WriteLine(firstline);
        writeout.Close();

我希望writeout将“firstline”附加到文件

,而不是覆盖文本文件中的现有数据。

9 个答案:

答案 0 :(得分:4)

StreamWriter writeout = new StreamWriter(path);更改为StreamWriter writeout = new StreamWriter(path, true);

请参阅http://msdn.microsoft.com/en-us/library/aa328969%28v=vs.71%29.aspx

或者,您可以使用File.AppendText,例如StreamWriter writeout = File.AppendText(path)

甚至只是File.AppendAllText,例如File.AppendAllText(path, firstline)

答案 1 :(得分:4)

您应该使用显式选项创建StreamWriter,以便能够APPEND到该文件。否则,它将始终创建一个新的。尝试调用Append,当未创建StreamWriter以追加时,会给出您描述的错误。

我不完全确定,但我认为你可以做到:

StreamWriter writeout = new StreamWriter(path,true);

使StreamWriter能够追加。

希望这有帮助。

答案 2 :(得分:3)

您可以使用StreamWriter构造函数的第二个参数 StreamWriter writeout = new StreamWriter(path, true);

答案 3 :(得分:3)

使用构造函数StreamWriter writeout = new StreamWriter(path, true);

答案 4 :(得分:2)

StreamWriter writeout = new StreamWriter(path,true); //true indicates appending
        writeout.WriteLine(firstline);
        writeout.Close();

答案 5 :(得分:2)

使用附加的布尔参数创建StreamWriter,该参数指定是否附加到现有文件:

StreamWriter writeout = new StreamWriter(path, true);

答案 6 :(得分:1)

首先通过将StreamWriter.BaseStream.Position设置为流的末尾然后继续正常继续寻找流的结尾。

答案 7 :(得分:1)

使用它怎么样?

var lines = new List<string>();
// load lines
System.IO.File.AppendAllLines(path, lines);

答案 8 :(得分:1)

try
{
    StringBuilder sb = new StringBuilder();
    StreamReader sr = new StreamReader(Path);
    sb.AppendLine(sr.ReadToEnd());
    sb.AppendLine("= = = = = =");
    sb.AppendLine(fileName + " ::::: " + time);
    sr.Dispose();
    if (sw == null)
    {
        sw = new StreamWriter(Path);
    }
    sw.Write(sb.ToString());
    sw.Dispose();

}
catch (Exception e)
{
}