我想通过StreamReader从一个文本文件中读取数据,编辑一个特定的字符串,并将其写入文件vis StreamWriter。

问题描述 投票:0回答:1

我想通过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();
}
c# streamreader streamwriter
1个回答
0
投票

我发现了错误。我忘记在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();
}
© www.soinside.com 2019 - 2024. All rights reserved.