Liebe Leute,
ich habe mir die untenstehende Klasse geschrieben, um eine Textdatei einzulesen, ein paar Zeichen zu ersetzen und dann die Datei wieder zu speichern. Leider ist das ganze recht langsam, d.h. bei meinem Core2Duo mit 2,2 GHz dauert eine 500kb-Datei ca. 10 bis 15 Sekunden, was innerhalb meiner Anwendung leider nicht akzeptabel ist.
Ich weiß nun leider nicht so genau, ob es an den Strings oder an der replace.All-Methode oder an dem BufferedReader (oder Writer) oder woran auch immer liegen könnte. :bahnhof: Mein erster Gedanke war, die Strings durch StringBuffer oder StringBuilder auszutauschen, aber dann gibt es ja keine replaceAll-Methode mehr?! Wie kann ich also sonst noch suchen und ersetzen?
Vielen Dank für Hinweise!
ich habe mir die untenstehende Klasse geschrieben, um eine Textdatei einzulesen, ein paar Zeichen zu ersetzen und dann die Datei wieder zu speichern. Leider ist das ganze recht langsam, d.h. bei meinem Core2Duo mit 2,2 GHz dauert eine 500kb-Datei ca. 10 bis 15 Sekunden, was innerhalb meiner Anwendung leider nicht akzeptabel ist.
Ich weiß nun leider nicht so genau, ob es an den Strings oder an der replace.All-Methode oder an dem BufferedReader (oder Writer) oder woran auch immer liegen könnte. :bahnhof: Mein erster Gedanke war, die Strings durch StringBuffer oder StringBuilder auszutauschen, aber dann gibt es ja keine replaceAll-Methode mehr?! Wie kann ich also sonst noch suchen und ersetzen?
Vielen Dank für Hinweise!
Code:
import java.io.*;
public class replaceAngleBrackets {
String xmlInhalt;
public replaceAngleBrackets( String datei ) {
xmlInhalt = this.DateiLaden( datei );
xmlInhalt = xmlInhalt.replaceAll("\u0026\u006c\u0074\u003b", "\u003c");
xmlInhalt = xmlInhalt.replaceAll("\u0026\u0067\u0074\u003b", "\u003e");
DateiSpeichern( xmlInhalt, datei );
}
public String DateiLaden( String dateiname ) {
String inhalt = new String("");
try {
BufferedReader Eingabe = new BufferedReader(new FileReader(dateiname));
String zeile = Eingabe.readLine();
while (zeile != null) {
inhalt = inhalt + zeile + "\n";
zeile = Eingabe.readLine();
}
Eingabe.close();
}
catch (IOException e) {
System.out.println("Error while reading the file " + dateiname);
}
return inhalt;
}
public void DateiSpeichern( String zeichenkette, String filename ) {
try {
BufferedWriter Ausgabe = new BufferedWriter(new FileWriter(filename));
Ausgabe.write(zeichenkette);
Ausgabe.close();
}
catch (IOException e) {
System.out.println("Error while saving the manipulated text to " + filename);
}
}
}