【发布时间】:2020-09-14 12:25:34
【问题描述】:
我想通过 StreamReader 从文本文件中读取数据,编辑特定行,然后通过 StreamWriter 将其写入文件(不是附加字符串而是更新它)。
我已经创建了文件并用字符串填充了它。以下代码仅用于编辑该文件中的字符串。
代码运行平稳,但不会更新数据。它只是让字符串在文件中保持原样。
var path=@"C:\sample.txt";
StringBuilder data = new StringBuilder();
using (StreamReader read=new StreamReader(path))
{
var line = "";
var fields = line.Split(',');
while (!read.EndOfStream)
{
line = read.ReadLine();
fields = line.Split(',');
if (fields[0] == txtAccountNumber.ToString())
data.AppendLine(fields[0] + "," +
fields[1] + "," +
account.Balance.ToString());
else
data.AppendLine(line);
}
read.Close();
}
using(StreamWriter write=new StreamWriter(path))
{
write.WriteLine(data);
write.Flush();
write.Close();
}
【问题讨论】:
-
代码
txtAccountNumber.ToString()看起来很可疑。如果txtAccountNumber是一个winforms 文本框,那么你应该写txtAccountNumber.Text。 Msdn:docs.microsoft.com/en-us/dotnet/api/… -
非常感谢。这就是问题所在。
-
我忽略了那部分
-
很奇怪。它是如何编译的?
-
好眼光@mortb,单从物名来看,印象深刻!
标签: c# streamreader streamwriter