我想通过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()中加入.Text。
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.Text.ToString()) //*Point of error
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();
}