我编写了以下代码,因为我希望以列表的形式将字符串保存到文本文件的末尾。
但是,在我尝试保存某些内容时,它会删除文件中的所有先前文本,只添加最新文本。以下是我的代码:
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();
}
提前谢谢你,露西
答案 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
附加文本