【问题标题】:Append input into text file instead of replacing it将输入追加到文本文件而不是替换它
【发布时间】:2013-08-26 22:28:42
【问题描述】:

我正在尝试从两个文本框中获取数据,并将其写入文件,而不是在按下按钮时替换已经存在的当前内容。这是我目前所拥有的:

private void button1_Click_1(object sender, EventArgs e)
    {
        using (StreamWriter sw1 = new StreamWriter("DataNames.txt"))
        {
            sw1.WriteLine(textBox1.Text);
        }

        using (StreamWriter sw2 = new StreamWriter("DataNumbers.txt"))
        {
            sw2.WriteLine(textBox2.Text);
        }    
    }

现在它接受输入,并替换文件中当前的任何内容,因此只有一行,而不是仅将其添加到列表中。感谢您的帮助。

【问题讨论】:

标签: c# text textbox append


【解决方案1】:
//using (StreamWriter sw1 = new StreamWriter("DataNames.txt"))
//{
//   sw1.WriteLine(textBox1.Text);
//}
System.IO.File.AppendAllText("DataNames.txt", textBox1.Text);

【讨论】:

    【解决方案2】:

    您正在创建两个单独的流写入器实例,它们都试图写入同一个文件,因此它们相互竞争 - 这就是您看到覆盖的原因。

    如果您想在文件末尾添加文本,最好的方法可能是 File.AppendAllText:http://msdn.microsoft.com/en-us/library/ms143356.aspx

    private void button1_Click_1(object sender, EventArgs e)
    {
        System.IO.File.AppendAllText("DataNames.txt", textBox1.Text + textBox2.Text);
    }
    

    AppendAllText 如果您正在执行较小的、相对不频繁的追加,则非常有用,因为您可以不加思索地将字符串发送到其中,而不是确保您正在使用流编写器。

    【讨论】:

      【解决方案3】:

      切换

      new StreamWriter("DataNumbers.txt")

      File.CreateText("DataNames.txt")

      您可以在以下位置找到更多信息:

      http://msdn.microsoft.com/en-us/library/system.io.file.appendtext.aspx

      【讨论】:

        【解决方案4】:

        试试这个

        using (StreamWriter sw2 = new StreamWriter("DataNumbers.txt", true))
        {
            sw2.WriteLine(textBox2.Text);
        }
        

        第二个参数true 告诉文件需要附加而不是覆盖。 StreamWriter(String, Boolean)

        【讨论】:

          【解决方案5】:

          使用StreamWriter Constructor (String, Boolean) 构造函数并通过true 进行追加。

          true 将数据追加到文件中; false 覆盖文件。如果指定的文件不存在,则该参数无效,并且 构造函数创建一个新文件。

          在您的代码中传递 true 如下:

          using (StreamWriter sw1 = new StreamWriter("DataNames.txt",true))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-23
            • 1970-01-01
            • 2016-10-25
            相关资源
            最近更新 更多