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

我试图按一个按钮,从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); } } 

有任何想法吗?

打开要追加的文件。

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

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

 StringBuilder sb = new StringBuilder(); sb.AppendLine(textBox.Text + " " + textbox2.Text); File.WriteAllText("c:\xuids.txt",sb.ToString(); 

使用过载:

 public StreamWriter(string path, bool append); 

 TextWriter xuids = new StreamWriter(xuidspath,true); 

更改:

 TextWriter xuids = new StreamWriter(xuidspath); 

至:

 TextWriter xuids = new StreamWriter(xuidspath, true); 

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

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

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