保存到现有文本文件c#的结尾

时间:2016-08-04 11:08:21

标签: c# save streamwriter

我编写了以下代码,因为我希望以列表的形式将字符串保存到文本文件的末尾。

但是,在我尝试保存某些内容时,它会删除文件中的所有先前文本,只添加最新文本。以下是我的代码:

using (var writer = new StreamWriter(@"C:\Users\Falconex\Documents\Visual Studio 2015\Projects\Test2\Test2\bin\Debug\Product.txt"))
{
    writer.WriteLine(productTextBox.Text + Environment.NewLine);
    writer.Close();
}

提前谢谢你,露西

6 个答案:

答案 0 :(得分:5)

每次写作时,您目前只是覆盖了文件的内容。

StreamWriter有第二个参数,你必须设置为true才能追加文字: https://msdn.microsoft.com/library/36b035cb(v=vs.110).aspx

using (var writer = new StreamWriter(@"C:\Path\To\file.txt", true))
{
    writer.WriteLine(productTextBox.Text + Environment.NewLine);
    writer.Close();
}

答案 1 :(得分:1)

你可以更轻松地做到这一点。在课堂上使用一些静态方法"文件" (AppendAllLines,AppendText,AppendAllText)。例如:

 File.AppendAllLines("filename.txt", new string[] { "my appended text" });

答案 2 :(得分:0)

您尝试将此代码添加到新的StreamWriter构造函数

new FileStream(@"path/to/file", FileMode.Append, FileAccess.Write)

了解更多信息,请查看https://msdn.microsoft.com/cs-cz/library/wtbhzte9(v=vs.110).aspx

答案 3 :(得分:0)

那是因为你要覆盖之前的内容。您需要先读取内容,然后再使用新文本再次写入。像这样:

sess.run(tf.initialize_all_variables)

答案 4 :(得分:0)

using (var writer = new StreamWriter(@"C:\Users\Falconex\Documents\Visual         Studio 2015\Projects\Test2\Test2\bin\Debug\Product.txt",true))
            {
                writer.WriteLine(productTextBox.Text + Environment.NewLine);
                writer.Close();
            }

答案 5 :(得分:0)

试试这个:

 using (var writer = new StreamWriter(filepath, true))
    {
        {
        writer.Write(productTextBox.Text + Environment.NewLine);
        }
    writer.Close();
    }

如果文件存在,true参数告诉StreamWriter附加文本