StreamWriter用新文本replace行

是否有可能用一个新的文本replace文本文本,而不擦除其他数据,这是我的示例代码,但它不工作,我知道有一个问题,但我不明白,谢谢,

private void button1_Click_1(object sender, EventArgs e) { StreamReader sr = new StreamReader("test10101.txt"); List<string> lines = new List<string>(); while (!sr.EndOfStream) lines.Add(sr.ReadLine()); output = Convert.ToInt32(textBox1.Text); newbal = Convert.ToInt32(lines[0]) - output; MessageBox.Show("Please get your cash....\n\nYour new balance is: $" + newbal); sr.Close(); { string linetoreplace = lines[0]; int newlinevalue = newbal; string contents = sr.ReadToEnd(); StreamWriter sw = new StreamWriter("test10101.txt" + ".tmp"); //contents = Regex.Replace(contents, linetoreplace, newlinevalue.ToString()); contents = contents.Replace(linetoreplace, newlinevalue.ToString()); sw.WriteLine(contents); sw.Close(); } 

我想知道如果我使用正则expression式或直接replace线,

你可以更容易地做到这一点:

  string[] lines = System.IO.File.ReadAllLines("test"); lines[0] = /* replace with whatever you need */ System.IO.File.WriteAllLines("test", lines); 

希望这可以帮助

另外我会建议使用int.TryParse如果你不想在你的代码部分引发异常,以防文件的第一行或文本框的值不是数字

如果你真的想使用Streamwriter,你可以用这个简单的方法:

 line[0] = newbal.ToString(); foreach(string s in lines) sw.WriteLine(s);