我在这里做了一个家庭作业。我创建了一个包含4个文本框的表单,用于输入数据,帐号,名字,姓氏,余额。我有四个按钮,创建文件,保存数据到文件,清除和退出。基本上所有的程序都是创建一个文本文件,然后我将我的数据输入文本框,然后我点击保存数据文件,它将数据写入我创建的文本文件。清除和退出已经完成,我让程序工作到创建文本文件,现在我只需要有人指出我正确的方向如何实际写入我输入到文本文件中的数据。这是我的代码,提前致谢
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Chapter_17_Ex.Sample_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnCreate_Click(object sender, EventArgs e)
{
SaveFileDialog file = new SaveFileDialog();
file.FileName = "client.txt";
file.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
file.ShowDialog();
StreamWriter filewrite = new StreamWriter(file.FileName);
}
private void btnSave_Click(object sender, EventArgs e)
{
TextWriter file = new TextWriter
}
private void btnClear_Click(object sender, EventArgs e)
{
txtAccount.Clear();
txtBalance.Clear();
txtFirstName.Clear();
txtLastName.Clear();
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
答案 0 :(得分:2)
您正在创建StreamWriter实例的正确轨道上。您现在要做的是使用该类的WriteLine()
方法。将StreamWriter实例包装在using
块中也是个好主意:
private void btnCreate_Click(object sender, EventArgs e)
{
SaveFileDialog file = new SaveFileDialog();
file.FileName = "client.txt";
file.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
file.ShowDialog();
using(StreamWriter filewrite = new StreamWriter(file.FileName))
{
filewrite.WriteLine( String.Format("First Name is {0}", txtFirstName.Text) );
//use Write() or WriteLine() again as needed.
}
}
答案 1 :(得分:0)
对于文件创建,您可以使用:
File.Create(file.FileName).Close(); // replace the StreamWriter code with this
对于写入该文件的最简单方法:
string line = string.Join(",", txtAccount.Text, txtBalance.Text, txtFirstName.Text, txtLastName.Text) + System.Environment.NewLine;
File.AppendAllText(file.FileName, line);
您还需要将“SaveFileDialog文件”移动为类字段,而不是方法局部变量。
您没有指定输出格式。我选择的是CSV ...但是输入没有“转义”,需要这样做以防止输入逗号搞乱输出。那部分取决于你。
请注意使用File.Create
和File.AppendAllText
- 这样可以避免将using
放在实际的I / O周围。