Hi,
ich schreibe gerade ein Programm bei dem unter anderem eine oder mehrere Textdateien mit 200000 Zeilen und mehr eingelesen werden soll. Das Programm sortiert die relevanten Daten aus der Textdatei in 5 verschiedenen Hashtables.
Später sollen die Daten aus den Hashtables dann in eine Datenbank geschrieben werden.
Mein Problem dabei ist, dass das einlesen der Textdatei viel zu lange dauert. Allein bei einer Textdatei mit 30000 Zeilen braucht mein Programm ca. 30 Sekunden. Ich durchlaufe alle Zeilen in der Datei mit einer for Schleife die etwa so aufgebaut ist:
Kann man an diesem Statement vielleicht noch etwas tun um die Performance spürbar zu verbessern?
Gibt es vielleicht eine andere Möglichkeit als BufferedReader(FileReader) die für diese Operation besser geeignet ist?
Vielen Dank im voraus
Gruß
Paladin
ich schreibe gerade ein Programm bei dem unter anderem eine oder mehrere Textdateien mit 200000 Zeilen und mehr eingelesen werden soll. Das Programm sortiert die relevanten Daten aus der Textdatei in 5 verschiedenen Hashtables.
Später sollen die Daten aus den Hashtables dann in eine Datenbank geschrieben werden.
Mein Problem dabei ist, dass das einlesen der Textdatei viel zu lange dauert. Allein bei einer Textdatei mit 30000 Zeilen braucht mein Programm ca. 30 Sekunden. Ich durchlaufe alle Zeilen in der Datei mit einer for Schleife die etwa so aufgebaut ist:
Code:
int dateilaenge = file.length();
int i = 0;
String aktuelleZeile;
BufferedReader in = new BufferedReader(new FileReader(file));
for(i=0;i<dateilaenge;i++) {
aktuelleZeile = in.readLine();
//hier kommt der ganze restliche Sortier-Code
}
Kann man an diesem Statement vielleicht noch etwas tun um die Performance spürbar zu verbessern?
Gibt es vielleicht eine andere Möglichkeit als BufferedReader(FileReader) die für diese Operation besser geeignet ist?
Vielen Dank im voraus
Gruß
Paladin