Ho due file di testo, Source.txt e Target.txt. La sorgente non verrà mai modificata e contiene N righe di testo. Quindi, voglio eliminare una specifica riga di testo in Target.txt e sostituirla con una specifica riga di testo da Source.txt, so quale numero di linea ho bisogno, in realtà è il numero di riga 2, entrambi i file.Modifica una riga specifica di un file di testo in C#
Mi rifugio qualcosa di simile:
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++;
}
}
}
Ma quando ho aperto il Writer, il file di destinazione vengono cancellati, scrive le righe, ma, una volta aperto, il file di destinazione contiene solo le linee copiate, il il resto si perde
Cosa posso fare?
Assolutamente eccezionale risposta !!!! ... totalmente lavorare qui. in esecuzione in dot net 2.0 ... in Unity3d è: ___ function lineChanger (newText: String, fileName: String, line_to_edit: int) { var arrLine: String [] = File.ReadAllLines (fileName); arrLine [line_to_edit - 1] = newText; File.WriteAllLines (fileName, arrLine); } –
Questo ha 1 problema, che riscrive l'intero file. –
carica anche tutto il file in memoria tutto in una volta. ma è probabilmente l'approccio più semplice e ancora utilizzabile con file di piccole dimensioni. –