Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存到现有文本文件c的结尾#_C#_Save_Streamwriter - Fatal编程技术网

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

C# 保存到现有文本文件c的结尾#,c#,save,streamwriter,C#,Save,Streamwriter,我编写了以下代码,因为我想以列表的形式将字符串保存到文本文件的末尾 但是,当我试图保存某些内容时,它会删除文件中以前的所有文本,只添加最近的文本。以下是我的代码: using (var writer = new StreamWriter(@"C:\Users\Falconex\Documents\Visual Studio 2015\Projects\Test2\Test2\bin\Debug\Product.txt")) { writer.WriteLine(productTextBo

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

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

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();
}

提前谢谢你,Lucy

你现在每次写的时候都会覆盖文件的内容

StreamWriter还有第二个参数,您必须将其设置为true才能追加文本:


每次写入时,您当前只是覆盖文件的内容

StreamWriter还有第二个参数,您必须将其设置为true才能追加文本:


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

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

有关更多信息,请查看Hi,尝试将此代码添加到新的StreamWriter构造函数中

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

有关更多信息,请查看

您可以更轻松地完成。对类“File”(AppendAllLines、AppendText、AppendAllText)使用一些静态方法。例如:

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

你可以做得更容易些。对类“File”(AppendAllLines、AppendText、AppendAllText)使用一些静态方法。例如:

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

这是因为您正在覆盖以前的内容。您需要先阅读内容,然后将其临时存储,然后用新文本再次写入。大概是这样的:

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

这是因为您正在覆盖以前的内容。您需要先阅读内容,然后暂时存储,然后用新文本再次写入。大概是这样的:

//Reading text
string text = System.IO.File.ReadAllText(@"C:\Users\Falconex\Documents\Visual Studio 2015\Projects\Test2\Test2\bin\Debug\Product.txt");
using (var writer = new StreamWriter(@"C:\Users\Falconex\Documents\Visual Studio 2015\Projects\Test2\Test2\bin\Debug\Product.txt"))
{
    writer.WriteLine(text + productTextBox.Text + Environment.NewLine);
    writer.Close();
}
试试这个:

 using (var writer = new StreamWriter(filepath, true))
    {
        {
        writer.Write(productTextBox.Text + Environment.NewLine);
        }
    writer.Close();
    }
true
参数告诉
StreamWriter
如果文件存在,则追加文本

尝试以下操作:

 using (var writer = new StreamWriter(filepath, true))
    {
        {
        writer.Write(productTextBox.Text + Environment.NewLine);
        }
    writer.Close();
    }
true
参数告诉
StreamWriter
如果文件存在,则追加文本