Mit FileWriter in eine Datei schreiben, oder doch nicht?

sicklikejosef

Grünschnabel
Liebe Community!

Der Konstruktor der Klasse FileWriter hat zwei Varianten:

FileWriter(Writer out)

oder

FileWriter(Writer out, boolean append)

Mit dem ersten kann man mit write() in eine Datei schreiben, und wenn man das öfter macht, wird die Datei jedes mal überschrieben.

Mit dem zweiten kann man (wenn append true ist) an DAS ENDE des Streams neuen Text einfügen.

Ich möchte aber an einer bestimmten Stelle in der Datei den bestehenden Text ersetzen oder neuen einfügen.

Meine Frage lautet: Ist es mit irgendeiner Klasse möglich, das zu realisieren? Vielleicht hab ich nicht genug nach gedacht, oder bin zu blöd, aber ich finde keine Möglichkeit.

Meine eigene Antwort darauf, weil ich keine Methode gefunden hab, ist darum sehr aufwendig:

Um Einträge zu ersetzen, werden sie Zeile für Zeile ausgelesen, wenn sie einer bestimmten Bedingung entsprechen durch einen anderen String ersetzt, in einen String gespeichert und wenn das Ende des BufferedReader Streams erreicht ist, mit FileWriter
in eine neue Datei gleichen namens geschrieben.

Ab 3000 Einträgen wird dieses Verfahren immer langsamer, ab 5000 hängt es sich auf.

Weiß jemand eine Antwort?
 
Zurück