Hallo liebe Experten,
ich möchte mit einer Methode den Inhalt einer Textdatei (String) in ein zweidimensionales Array einlesen. Die Textdatei umfasst ca. 15 Mio. Zeilen mit jeweils 4 Werten.
Die ersten 5 Mio. Zeilen werden auch ohne Probleme eingelesen, ab da wird dann nunr noch im Sekundentakt eine Zeile eingelesen, sodass ich wahrscheinlich Monate warten müsste, bis in das Array vollständig eingelesen ist.
Unten aufgeführt der entsprechende Code.
Gibt es eine Möglichkeit das Einlesen zu beschleunigen (andere Vorgehensweise, Optimierung des Codes)?
Danke im Voraus.
Viele Grüße
Stefan
ich möchte mit einer Methode den Inhalt einer Textdatei (String) in ein zweidimensionales Array einlesen. Die Textdatei umfasst ca. 15 Mio. Zeilen mit jeweils 4 Werten.
Die ersten 5 Mio. Zeilen werden auch ohne Probleme eingelesen, ab da wird dann nunr noch im Sekundentakt eine Zeile eingelesen, sodass ich wahrscheinlich Monate warten müsste, bis in das Array vollständig eingelesen ist.
Unten aufgeführt der entsprechende Code.
Java:
public static String[][] readData(String dateiname) {
String[][] gesamt;
gesamt = new String[15025970][4];
try {
File fl;
fl = new File(dateiname);
FileReader fr;
fr = new FileReader(fl);
BufferedReader br;
br = new BufferedReader(fr);
String zeile = br.readLine();
int i = 0;
while(zeile != null) {
String[] verbund = zeile.split("\t");
String wert1 = verbund[0];
String wert2 = verbund[1];
String wert3 = wert1+wert2;
String wert4 = verbund[2];
String wert5 = verbund[3];
gesamt[i][0] = wert3;
gesamt[i][1] = wert4;
gesamt[i][2] = wert5;
gesamt[i][3] = "0";
i = i+1;
System.out.println(i);
zeile = br.readLine();
}
}
catch(FileNotFoundException e1) {
System.out.println(e1);
}
catch(IOException e2) {
System.out.println(e2);
}
return gesamt;
}
Gibt es eine Möglichkeit das Einlesen zu beschleunigen (andere Vorgehensweise, Optimierung des Codes)?
Danke im Voraus.
Viele Grüße
Stefan
Zuletzt bearbeitet: