将文本保存到已创建的文本文件

问题描述:

因此,我正在尝试为tafe执行此问题,但在第一次后无法将文本添加到文件中。将文本保存到已创建的文本文件

“创建一个应用程序,在启动时要求用户使用”保存文件“对话框窗口选择输出文件。应用程序具有”写入文件“按钮,单击该按钮时将显示用户的姓名和年龄已经进入两个文本框并直接写入文件,用户可以按照他们的意愿经常重复按钮点击操作。“

这是我为它当前的代码:

private void Form4_Load(object sender, EventArgs e) 
{ 
    saveFileDialog1.Title = ("Choose Save Location"); 
    saveFileDialog1.ShowDialog(); 
} 

private void btnSendToFile_Click(object sender, EventArgs e) 
{ 
    string strName = txtName.Text; 
    string strAge = txtAge.Text; 
    string strTitles = ("Name \t\t Age"); 
    string strCombined = strTitles + "\n" + (strName + "\t\t" + strAge); 
    System.IO.StreamWriter OutFile; 

    MessageBox.Show("The Name and Age of the Person Entered Will be Written to a File"); 

    OutFile = System.IO.File.CreateText(saveFileDialog1.FileName); 
    OutFile.WriteLine(strCombined); 

    OutFile.Close(); 

    MessageBox.Show("The Details Have Been Written to File" + saveFileDialog1.FileName); 

    StreamWriter AddFile = File.AppendText(saveFileDialog1.FileName); 

    AddFile.Write(strCombined); 
} 

我不知道我是否应该做一个循环或没有,这是形式本身,https://gyazo.com/e2c4170d46295d6f92a35026e1f2304b

任何帮助表示赞赏,在此先感谢

对于你在做什么,你绝对不需要与低电平(你不需要调用上的文件的创建方法,并使用它返回一个流)流或任何工作。您可以直接使用该写的方法或追加到该文件,并处理所有的这个要求。

例如使用AppendAllText将尽一切为你(管理流,冲洗和关闭它们,在最后追加,创建该文件,如果它不存在,等等等等)。

这样你就可以取代所有这些代码:

System.IO.StreamWriter OutFile; 
    MessageBox.Show("The Name and Age of the Person Entered Will be Written to a File"); 
    OutFile = System.IO.File.CreateText(saveFileDialog1.FileName); 
    OutFile.WriteLine(strCombined); 
    OutFile.Close(); 
    MessageBox.Show("The Details Have Been Written to File" + saveFileDialog1.FileName); 

File.AppendAllText(saveFileDialog1.FileName, strCombined); 

我不知道你在它后面(调用AppendText通过代码做什么,我想你'你认为你需要在创建后追加?),无论如何你不需要它。所以,如果你只是想的“strcombined”的所有文字附加在文件末尾每次单击整个功能应该是这样的:

private void btnSendToFile_Click(object sender, EventArgs e) 
{ 
    string strName = txtName.Text; 
    string strAge = txtAge.Text; 
    string strTitles = ("Name \t\t Age"); 
    string strCombined = strTitles + "\n" + (strName + "\t\t" + strAge); 

    MessageBox.Show("The Name and Age of the Person Entered Will be Written to a File"); 
    File.AppendAllText(saveFileDialog1.FileName, strCombined); 
    MessageBox.Show("The Details Have Been Written to File" + saveFileDialog1.FileName); 
} 

另外,作为一个侧面评论,我会重写所有的它这样的可读性,这是建议,而不是硬性规则:

1)删除了匈牙利命名法(不要前缀添加到您的变量来表示它的类型,它通常皱眉)

2)删除了很多这是不是真的需要临时变量(使用一次在同一个本地函数)

这使得一个更小的和非常可读的功能:

private void btnSendToFile_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("The Name and Age of the Person Entered Will be Written to a File"); 
    File.AppendAllText(saveFileDialog1.FileName,"Name \t\t Age"+ "\n" + txtName.Text + "\t\t" + txtAge.Text); 
    MessageBox.Show("The Details Have Been Written to File" + saveFileDialog1.FileName); 
} 
+0

感谢的人绝对传奇 – ASI