Guten Abend zusammen,
in meinem Projekt lese ich diverse .txt-Files ein und verabeite die Daten. Hierbei verwende ich jeweils das selbe Codegerüst für BufferedReader. In einem von drei Files habe ich aber das Problem dass das File nicht eingelesen wird wenn ich keinen Breakpoint setze. Sobald ein Breakpoint gesetzt wurde, funktioniert alles einwandfrei. Ich komme leider weder durch Versuche noch Internetrecherche weiter und hoffe auf eure Hilfe.
Mit der readFile Methode lese ich das .txt ein:
Mit der handleFile Methode rufe ich readFile auf und schreibe die benötigten Daten in ein vorhandenes Objekt:
Wenn ich in handleFile einen Breakpoint auf den readFile-Aufruf setze oder in der readFile Methode einen Breakpoint auf die while Schleife setze, funktioniert der Code wunderbar.
Wenn ich allerdings einen Breakpoint in dei while Schleife auf "lines.add" setze, ohne weitere Breakpoints, wird ein leeres Array zurückgegeben. Auch println wird nicht ausgeführt.
Andere Textfiles werden auf die gleiche Weise problemlos eingelesen und zurückgegeben.
Das Textfile hat folgende Struktur in unterschiedlicher Zeilenlänge:
Kann sich jemand erklären und warum der Code nur mit entsprechendem Breakpoint im Debug ausgeführt wird?
Vielen Dank schonmal im voraus!
in meinem Projekt lese ich diverse .txt-Files ein und verabeite die Daten. Hierbei verwende ich jeweils das selbe Codegerüst für BufferedReader. In einem von drei Files habe ich aber das Problem dass das File nicht eingelesen wird wenn ich keinen Breakpoint setze. Sobald ein Breakpoint gesetzt wurde, funktioniert alles einwandfrei. Ich komme leider weder durch Versuche noch Internetrecherche weiter und hoffe auf eure Hilfe.
Mit der readFile Methode lese ich das .txt ein:
Java:
public static String[][] readFile() {
FileReader myFile = null;
BufferedReader buff = null;
final List<String> lines = new ArrayList<String>();
try {
myFile = new FileReader("File.txt");
buff = new BufferedReader(myFile);
String line;
while ((line = buff.readLine()) != null) {
lines.add(line);}
System.out.println(line); //Kontrolle
} catch (IOException e) {
System.err.println("Error2 :" + e);
} finally {
try {
buff.close();
myFile.close();
} catch (IOException e) {
System.err.println("Error2 :" + e);
}
}
final String[][] DataArray = new String[lines.size()][];
int i = 0;
for (final String line : lines) {
DataArray[i] = line.split(";");
i++;
}
return DataArray;
}
Mit der handleFile Methode rufe ich readFile auf und schreibe die benötigten Daten in ein vorhandenes Objekt:
Java:
public static Object[] handleFile(Object[] DataObject) {
String[][] DataArray = readFile();
for (int i = 0; i < DataArray.length; i++) {
for (int cnt = 0; cnt < DataObject.length; cnt++) {
if (DataObject[cnt].name.equals(DataArray[i][0])) {
DataObject[cnt].weight = Double.parseDouble(DataArray[i][3]);
DataObject[cnt].speed = Double.parseDouble(DataArray[i][4]);
}
}
}
return DataObject;
}
Wenn ich allerdings einen Breakpoint in dei while Schleife auf "lines.add" setze, ohne weitere Breakpoints, wird ein leeres Array zurückgegeben. Auch println wird nicht ausgeführt.
Andere Textfiles werden auf die gleiche Weise problemlos eingelesen und zurückgegeben.
Das Textfile hat folgende Struktur in unterschiedlicher Zeilenlänge:
Code:
ABA;GAN;LOS;1.0;20.8797;
ABB;GAN;LOS;1.0;188.1994;
.
.
.
Vielen Dank schonmal im voraus!