Hey Leute,
ich muss eine Datei einlesen und auf ein gewisses Format überprüfen.
Dazu habe ich folgenden Code zum einlesen verwendet:
Ich gehe also die Zeilen durch und prüfe sie jeweils auf ein spezielles Format. Falls ein Format nicht stimmt gibt die Methode direkt false zurück. Wenn jedoch jede Zeile richtig ist und man am Ende der While-Schleife angelangt ist soll true zurückgegeben werden.
Falls nun allerdings das Dokument leer ist, so geht die Methode erst gar nicht in die While-Schleife (weil in.readLine == null) und gibt mir direkt true zurück -> was natürlich falsch ist.
Wie löse ich das Problem am besten?
Wenn ich ein if(in.readLine == null) vorher einsetze überspringe ich bei einem richtigen Dokument natürlich immer die erste Zeile..auch nicht Sinn der Sache..
Vielen Dank im voraus!
Gruß
NobodyGER
ich muss eine Datei einlesen und auf ein gewisses Format überprüfen.
Dazu habe ich folgenden Code zum einlesen verwendet:
Java:
public class Example {
public static void main(String[] args) {
if (args.length == 1) {
System.out.println(readFile(args[0]));
}
}
private static boolean readFile(String filePath) {
try {
BufferedReader in = new BufferedReader(new FileReader(filePath));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
//...tests zu dem format der jeweiligen linie. return false falls ein format nicht stimmt
if (LINIENFORMAT FALSCH) {
return false;
}
}
System.out.println("Bitte gib das nur aus, wenn die Datei nicht leer ist und das Format stimmt");
return true;
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
Ich gehe also die Zeilen durch und prüfe sie jeweils auf ein spezielles Format. Falls ein Format nicht stimmt gibt die Methode direkt false zurück. Wenn jedoch jede Zeile richtig ist und man am Ende der While-Schleife angelangt ist soll true zurückgegeben werden.
Falls nun allerdings das Dokument leer ist, so geht die Methode erst gar nicht in die While-Schleife (weil in.readLine == null) und gibt mir direkt true zurück -> was natürlich falsch ist.
Wie löse ich das Problem am besten?
Wenn ich ein if(in.readLine == null) vorher einsetze überspringe ich bei einem richtigen Dokument natürlich immer die erste Zeile..auch nicht Sinn der Sache..
Vielen Dank im voraus!
Gruß
NobodyGER
Zuletzt bearbeitet von einem Moderator: