Moltar
Mitglied
Hallo,
ich möchte in meinem Programm eine ziemlich große Textdatei verarbeiten.
Die Dateigröße liegt etwa bei 10 MB.
Verarbeiten heißt, ich will nach bestimmten Zeichenketten suchen, deren Position speichern, Zeichenketten ersetzen, etc.
Daher dachte ich zunächst daran, das ganze in einem String zu speichern.
Hier mein Code:
Das Problem ist, dass das Programm mit jeder Zeile langsamer wird. Ab Zeile 15.000 wird es langsam unerträglich. Getestet habe ich das mit einer nur 800KB Datei.
Das ist also keine Lösung für 10MB.
Weiß jemand etwas besseres?
Danke
Moltar
ich möchte in meinem Programm eine ziemlich große Textdatei verarbeiten.
Die Dateigröße liegt etwa bei 10 MB.
Verarbeiten heißt, ich will nach bestimmten Zeichenketten suchen, deren Position speichern, Zeichenketten ersetzen, etc.
Daher dachte ich zunächst daran, das ganze in einem String zu speichern.
Hier mein Code:
Code:
public void readFile(String filename) throws IOException {
String content = new String();
BufferedReader input = new BufferedReader(new FileReader(filename));
String line;
int count = 0;
while((line = input.readLine()) != null) {
content = content + line + "\n";
count++;
if(count%100 == 0) { System.out.println(count); }
}
input.close();
System.out.println(content);
}
Das Problem ist, dass das Programm mit jeder Zeile langsamer wird. Ab Zeile 15.000 wird es langsam unerträglich. Getestet habe ich das mit einer nur 800KB Datei.
Das ist also keine Lösung für 10MB.
Weiß jemand etwas besseres?
Danke
Moltar