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