【发布时间】:2015-09-22 20:19:20
【问题描述】:
我创建了一个从文本框中获取用户名的循环。我想将名称放入文本文件并每次添加一个新行。它不工作。它再次覆盖了以前的名称。我知道如何在文本文件中添加新行,但在循环语句中它不起作用。 这是我的代码:
for (int i = 0; i < txt_user.length ; i++ )
{
File.WriteAllText(@"C:\mail\users.txt", txt_user[i].Text + Environment.NewLine);
}
这是一个循环外的示例代码,用于编写新行 - 它可以工作:
File.WriteAllText(@"C:\mail\users.txt", txt_user1.Text + Environment.NewLine + "abc");
【问题讨论】:
-
好吧
File.WriteAllText会覆盖内容。您想打开文件并向其中写入行。我建议您查看StreamWriter。还要注意你现在拥有它的方式(假设它工作)会打开文件,写一行,关闭文件,重复,重复,重复。那很糟。你想打开它,写下你所有的东西,然后关闭它。效率更高。 -
改用
AppendAllText方法。 -
出于我提到的原因,我建议不要使用@Jens 解决方案。没有理由一遍又一遍地打开和关闭文件。这比做一次效率低得多。
-
@Jens 同意,但您直到现在才提到
StringBuilder。你只是告诉他使用不同的方法。
标签: c# loops text-files newline