Bearbeiten einer bestimmten Zeile einer Textdatei in C #

Ich habe zwei Textdateien, Source.txt und Target.txt. Die Quelle wird niemals geändert und enthält N Textzeilen. Ich möchte also eine bestimmte Textzeile in Target.txt löschen und durch eine bestimmte Textzeile aus Source.txt ersetzen. Ich weiß, wie viele Zeilen ich benötige, eigentlich ist die Zeile Nummer 2, beide Dateien.

Ich habe so etwas:

string line = string.Empty;
int line_number = 1;
int line_to_edit = 2;

using (StreamReader reader = new StreamReader(@"C:\source.xml"))
{
    using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))
    {
        while ((line = reader.ReadLine()) != null)
        {
            if (line_number == line_to_edit)
            {
                writer.WriteLine(line);
            } 

            line_number++;
        }
    }
}

Aber wenn ich den Writer öffne, wird die Zieldatei gelöscht, es werden die Zeilen geschrieben, aber wenn die Zieldatei geöffnet wird, enthält sie nur die kopierten Zeilen, der Rest geht verloren.

Was kann ich machen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage