C#如何在文本文件中写多行?

时间:2012-02-11 00:11:48

标签: c# file text lines

我正在尝试按下一个按钮,该按钮将textbox4和textbox5中的文本写入文本文件。但是,当我再次按下它以向文本文件添加新信息时,它只是将新文本替换为新文本。每次按下按钮时,如何让它在第一行下面写另一行?

这是我到目前为止的代码

    private void button5_Click(object sender, EventArgs e)
    {
        try
        {
            xuidspath = @"c:\xuids.txt";
            ListViewItem lvi = new ListViewItem();
            lvi.Text = textBox4.Text;
            lvi.SubItems.Add(textBox5.Text);
            listXuid.Items.Add(lvi);
            TextWriter xuids = new StreamWriter(xuidspath);
            xuids.WriteLine(textBox4.Text + "-" + textBox5.Text);
            textBox5.Clear();
            textBox4.Clear();
            xuids.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

有什么想法吗?

5 个答案:

答案 0 :(得分:3)

只需使用StringBuilder类和File.WriteXXX方法。

StringBuilder sb = new StringBuilder();
sb.AppendLine(textBox.Text + " " + textbox2.Text);

File.WriteAllText("c:\xuids.txt",sb.ToString();

答案 1 :(得分:3)

打开要追加的文件。

FileStream xuids = new FileStream(xuidspath, FileMode.Append);

答案 2 :(得分:0)

使用重载:

public StreamWriter(string path, bool append);

TextWriter xuids = new StreamWriter(xuidspath,true);

答案 3 :(得分:0)

变化:

TextWriter xuids = new StreamWriter(xuidspath);

要:

TextWriter xuids = new StreamWriter(xuidspath, true);

第二个参数是追加。来自MSDN(http://msdn.microsoft.com/en-us/library/36b035cb.aspx):

  

确定是否将数据附加到文件。如果是文件   exists和append为false,文件被覆盖。如果是文件   exists和append为true,数据将附加到文件中。   否则,将创建一个新文件。

答案 4 :(得分:-1)

RichTextBox rch = new RichTextBox();
rch.Text = cmn;
foreach (string l in rch.Lines)
    strw.WriteLine(l);