将文本框中的数据保存到文本文件中

时间:2014-04-02 23:35:32

标签: c# file button text save

我想给我写一个程序应该比证明要容易得多。
我有一个带有文本框的表单,要求用户输入他们的详细信息,例如名称,地址等。我想要实现的是当用户点击保存按钮时将文本框中的数据保存到.txt文件中。

我可以创建文件,但数据不会保存到文件中。 我已在下面发布了我的代码,我们将非常感谢您提供的任何帮助。

private void btnSave_Click(object sender, EventArgs e)
{
    string file_name = "e:\\test1.txt";

    System.IO.StreamWriter objWriter;
    objWriter = new System.IO.StreamWriter(file_name, true);

    objWriter.Write(txtName.Text);
    objWriter.Write(txtAddress.Text);
    objWriter.Write(txtEmail.Text);
    objWriter.Write(txtPhone.Text);

    MessageBox.Show("Details have been saved");
}

3 个答案:

答案 0 :(得分:1)

完成后调用StreamWriter.Flush方法:

objWriter.Flush();
  

清除当前编写器的所有缓冲区,并将所有缓冲的数据写入基础流。

您也可以使用File.WriteAllText方法执行此操作:

var line = string.Join(" ", txtName.Text, txtAddress.Text, txtEmail.Text,txtPhone.Text);
File.WriteAllText(file_name, line);

答案 1 :(得分:1)

将实现IDisposable的局部变量包装到using语句中是一种很好的做法:

using (StreamWriter objWriter = new StreamWriter(file_name, true))
{
    objWriter.Write(txtName.Text);
    objWriter.Write(txtAddress.Text);
    objWriter.Write(txtEmail.Text);
    objWriter.Write(txtPhone.Text);
}

这也有一个积极的副作用:在执行using语句后立即刷新并关闭流。

建议:考虑使用WriteLine代替Write,因为您可能需要字符串值之间的分隔符。

答案 2 :(得分:0)

在存在StreamWriter的代码行的开头使用using会更实际。这是为了确保数据为Disposed,您需要这样才能从流中解锁数据。

撰写数据时:

 using (StreamWriter objWriter = new StreamWriter("test1.txt"))
{
    objWriter.Write(txtName.Text);
    objWriter.Write(txtAddress.Text);
    objWriter.Write(txtEmail.Text);
    objWriter.Write(txtPhone.Text);

    MessageBox.Show("Details have been saved");
}

在阅读保存的数据时,让我们使用一个列表框来举例:

  foreach (var line in File.ReadAllLines("test1.txt"))
{
    listBox1.Items.Add(line);
}

希望这有帮助!