【问题标题】:C# add text to text file without rewriting it?C#将文本添加到文本文件而不重写它?
【发布时间】:2012-03-22 12:14:09
【问题描述】:

假设我有以下代码:

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

此代码将文件的内容替换为“这里有一些东西”,但是我想向文件添加文本而不是替换文本。我该怎么做?

【问题讨论】:

    标签: c# file filestream streamwriter


    【解决方案1】:

    你需要告诉StreamWriter你想追加:

    var sw = new StreamWriter(path, true);
    

    File.OpenWrite 不支持追加。

    【讨论】:

      【解决方案2】:

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

      File.AppendAllText(Path, "blah");
      

      这样您就不必担心流和处理它们(即使在发生异常的情况下,顺便说一下您没有正确执行),并且代码非常简单明了。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          查看 System.IO.File.AppendAllText

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

          你可以做你想做的事

          File.AppendAllText(path, text);
          

          【讨论】:

            【解决方案5】:

            使用append参数:

            StreamWriter sw = new StreamWriter(Path, true);
            

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

            【讨论】:

              【解决方案6】:

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

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-04-28
                • 2011-05-08
                • 2022-01-12
                • 2011-12-01
                • 2013-08-26
                相关资源
                最近更新 更多