Größere Textdatei - wie im Programm verwalten?



  • Hallo,

    ich möchte eine größere Textdatei in mein Programm laden, bestimmte Wörter ersetzen(auch ein einzelnes Wort durch mehrere Zeilen Text) und diese Datei dann wieder unter einem neuen Namen abspeichern.

    Ist es da die geschickteste Variante das ganze mit einem String und den praktischen eingebauten Funktionen zu lösen?

    Grüße und Danke,
    Michael



  • Das kommt auf die Größe der Datei an. Bei ganz kleinen Datein wäre es sicherlich nicht tragisch, die Datei in einen String einzulesen und mit den fertigen Methoden zu arbeiten. Bei größeren Dateien ist es aber mehr als ineffizient, weil die ganze Datei ja erstmal in den Cache geladen werden muss. Eine gute Alternative stellt die Klasse RandomAccessFile dar, welche freien Zugriff innerhalb der Datei ermöglicht.



  • OK, danke erstmal!

    Könnte man eine Datei mit ca. 50-100KB als String dann noch "vertreten" oder ist das schon zu viel? Von diesen Ersetzungszugriffen würden ca. 3-5 passieren.

    Mir ist die Lesbarkeit und Verständlichkeit des Codes sehr wichtig, deswegen wäre es nett, wenn das noch ohne allzu riesige Performanceverluste mit einem String machbar wäre.

    Grüße,
    Michael



  • Könnte man eine Datei mit ca. 50-100KB als String dann noch "vertreten" oder ist das schon zu viel? Von diesen Ersetzungszugriffen würden ca. 3-5 passieren.

    Das Problem ist das Strings in Java immutable sind, d.h bei jedem Zugriff wird ein neues String-Objekt erzeugt...bei so einer Dateigröße könnte die Performance schon ein wenig leiden.
    Vielleicht ist der StringBuilder das Richtige für dich, im Endeffekt ein mutable String.
    http://java.sun.com/javase/6/docs/api/java/lang/StringBuilder.html



  • probiere es doch einfach aus!


Anmelden zum Antworten