Aqualon
2003-11-07, 17:31:47
Ich habe ein Problem mit der Anzeige langer Texte in Java. Und zwar würde ich gerne eine 3MiB große txt-Datei öffnen und anzeigen lassen.
Den reinen Vorgang des Öffnens habe ich über einen BufferedReader gemacht, der den Text in einen StringBuffer einliest. Dies dauert weniger als eine Sekunde, ist also mehr als ausreichend.
Mein großes Problem ist nun die Anzeige des eingelesenen Textes. Meine bisherige Lösung ist es den StringBuffer in einen String zu konvertieren und danach mit setText() in eine JTextArea zu schreiben. Dies hat allerdings den Nachteil, dass es zum einen mehr als 6 Sekunden dauert und ausserdem den Speicherbedarf um ~50MiB nach oben treibt (auf insgesamt über 70MiB). Die Folge dessen ist, dass ich beim erneuten Laden der Datei eine OutOfMemory Exception bekomme.
Kennt jemand eine Möglichkeit wie man trotzdem große Textdateien öffnen und anzeigen kann, ohne soviel Speicher zu belegen?
Aqua
Den reinen Vorgang des Öffnens habe ich über einen BufferedReader gemacht, der den Text in einen StringBuffer einliest. Dies dauert weniger als eine Sekunde, ist also mehr als ausreichend.
Mein großes Problem ist nun die Anzeige des eingelesenen Textes. Meine bisherige Lösung ist es den StringBuffer in einen String zu konvertieren und danach mit setText() in eine JTextArea zu schreiben. Dies hat allerdings den Nachteil, dass es zum einen mehr als 6 Sekunden dauert und ausserdem den Speicherbedarf um ~50MiB nach oben treibt (auf insgesamt über 70MiB). Die Folge dessen ist, dass ich beim erneuten Laden der Datei eine OutOfMemory Exception bekomme.
Kennt jemand eine Möglichkeit wie man trotzdem große Textdateien öffnen und anzeigen kann, ohne soviel Speicher zu belegen?
Aqua