我有这个代码。我想将“个人”的数据保存到文本文件中,同时将其加载到文本框中。当我写第一人称数据时,它可以正确执行。但是,在写入第二人称数据时,它会覆盖第一人称数据。在跳到第二行时,需要您的帮助,在该处写入第二人称数据,然后将其正确加载到txtPersonLoaded文本框。 例如:第一人称是史蒂夫·罗杰斯(Steve Rogers),电话号码为01234,个人ID为456789。结果为:1史蒂夫·罗杰斯01234 456789。 当我尝试添加例如Tony Stark 9876 54321 我得到这个结果:2 Tony Stark 9876 54321 2 Tony Stark 9876 54321 而不是:1史蒂夫·罗杰斯01234 456789。 2托尼·史塔克9876 54321
public void Save()
{
people.Add(peopleKey, new Person(txtFirstName.Text, txtLastname.Text, txtPhoneNumber.Text, txtPersonalID.Text));
try
{
if (!string.IsNullOrEmpty(txtFirstName.Text) && !string.IsNullOrEmpty(txtLastname.Text) && !string.IsNullOrEmpty(txtPhoneNumber.Text))
{
using (var writer = new StreamWriter(new FileStream(filePath, FileMode.OpenOrCreate)))
{
foreach (var p in people)
{
writer.Write(peopleKey + " ");
writer.Write(txtFirstName.Text + " ");
writer.Write(txtLastname.Text + " ");
writer.Write(txtPhoneNumber.Text + " ");
writer.Write(txtPersonalID.Text + " ");
}
};
using (var reader = new StreamReader(new FileStream(filePath, FileMode.Open)))
{
reader.BaseStream.Position = 0;
txtPersonsLoaded.Text = reader.ReadToEnd();
}
string savedText = txtPersonsLoaded.Text;
txtFirstName.Clear();
txtLastname.Clear();
txtPersonalID.Clear();
txtPhoneNumber.Clear();
}
}
catch (DirectoryNotFoundException ex)
{
if (MessageBox.Show("Do you want us to create directory for you?", ex.Message, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
Directory.CreateDirectory(filePath);
Save();
}
}
peopleKey++;
}
答案 0 :(得分:0)
我还不能发表评论,所以我将其发布为答案: 您可以看到标记的答案here
new StreamWriter("c:\\file.txt", append: true);
这是另一个很好的解决方案
using (StreamWriter w = File.AppendText("myFile.txt"))
{
w.WriteLine("hello");
}