Der Martin: String in eine bestehende TXT-Datei einfügen

Beitrag lesen

Hallo,

ich würde gern einen String (oder eine weitere Zeile mit Text) in eine bestehende TXT-Datei VORN (also als 1. Zeile) einfügen. Da diese Datei über 14.000 Zeilen hat (und stetig wächst), will ich das Auslesen, String einfügen und in die selbe Datei speichern umgehen, zwecks Performance.

sieht schlecht aus ...

Daher die Frage, wie ich dennoch einen String in diese TXT-Datei an erste Stelle einfügen kann?

Textdateien haben keine festgelegte Struktur, sie sind nur eine (fast) endlose Aneinanderreihung von Zeichen. Deswegen gibt es technisch gesehen auch keinen anderen Weg als die Datei komplett zu lesen, zu ergänzen und wieder zu schreiben.

Ich könnte mir eine minimale Vereinfachung vorstellen, indem du die Originaldatei zum Lesen öffnest, eine neue Datei unter einem temporären Namen zum Schreiben. Da schreibst du zunächst den neuen Inhalt hinein, der dann am Dateianfang stehen soll. Danach kannst du entweder Zeile für Zeile oder Block für Block (Blockgröße beliebig, aber aus Performancegründen im hohen kB-Bereich) aus der Originaldatei lesen und in die neue Datei schreiben.
Zum Schluss kannst du die Originaldatei löschen und die neu erzeugte passend umbenennen.

Vorteil dieser Methode: Die Datei kann beliebig groß sein, du brauchst nicht den gesamten Dateiinhalt vorübergehend im Arbeitsspeicher zu halten.

So long,
 Martin