[英]How to append text to my file so it adds new content instead of overwrite
一切正常,直到我注册一个新用户并单击“保存”,它会用新信息覆盖文本文件中的内容,我想添加新行并再次开始添加内容数组。 我知道有一个“附加”功能,但是我尝试了很多事情,但似乎无法使其与我当前的写入文件方式一起使用。
private async void button1_Click(object sender, EventArgs e)
{
string[] contents = new string[4];
contents[0] = "Name: " + txtName.Text;
contents[1] = "Address: " + txtAddress.Text;
contents[2] = "Phone: " + txtPhone.Text;
contents[3] = "Blood Type: " + cmbBloodType.SelectedItem.ToString();
System.IO.File.WriteAllLines( @"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", contents);
}
您是否尝试过File.AppendAllText()
? 这是一个例子:
File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", "content" + Environment.NewLine);
我认为这是因为您的内容是一个数组,所以您必须将这个数组连接到一个字符串中,例如:
System.IO.File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", string.Join(Environment.NewLine, contents));
编辑代码:当您保存文件时,请尝试:
private async void button1_Click(object sender, EventArgs e)
{
System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
stringBuilder.AppendLine("Name: " + txtName.Text);
stringBuilder.AppendLine("Address: " + txtAddress.Text);
stringBuilder.AppendLine("Phone: " + txtPhone.Text);
stringBuilder.AppendLine("Blood Type: " + cmbBloodType.SelectedItem.ToString());
System.IO.File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", stringBuilder.ToString() + Environment.NewLine);
}
那应该将文本追加到文件末尾。 官方文档可以在这里找到: https : //msdn.microsoft.com/en-us/library/ms143356(v=vs.110).aspx
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.