StreamWriter ersetzt die Zeile durch einen neuen Text

Ist es möglich, den Text in einer Textdatei durch einen neuen Text zu ersetzen, ohne die anderen Daten zu löschen? Hier ist mein Beispielcode, aber er funktioniert nicht. Ich weiß, dass es ein Problem gibt, aber ich kann es nicht herausfinden, danke.

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();

    }

Ich frage mich, ob ich den Regex verwende oder die Leitung direkt ersetze.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage