Ich habe eine neue Datei erstellt, die leer ist. Jetzt, wenn ich es lese, wirft es mich eine EOFException, die unerwünscht ist. Stattdessen möchte ich, dass, wenn die Datei leer ist, würde es andere zwei Funktionen ausführen, die in if(roomFeed.size() == 0)
Zustand sind. Ich könnte diese Anweisung in die EOFException catch-Klausel schreiben; Aber das ist nicht das, was ich tun will, denn jedes Mal, wenn die Datei gelesen wird und das Ende der Datei erreicht, wird sie diese Funktionen ausführen. Wenn die Datei Daten enthält, sollte sie das tun, was in else angegeben ist.EOFexception verursacht durch leere Datei
File fileChecker = new File("roomChecker.ser");
if(!fileChecker.exists()) {
try {
fileChecker.createNewFile();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Unable to create new File");
}
}
try(FileInputStream fis = new FileInputStream("roomChecker.ser"); ObjectInputStream ois = new ObjectInputStream(fis)) {
roomFeed = (List<roomChecker>) ois.readObject();
System.out.println("End of read");
if(roomFeed.size() == 0) {
System.out.println("your in null if statement");
defaultRoomList();
uploadAvailableRooms();
} else {
for(int i=0; i<roomNumber.size(); i++) {
for(int j=0; j<roomFeed.size(); i++) {
if((roomNumber.get(i)).equals(roomFeed.get(i).getRoomNumSearch())){
System.out.println("Reach Dead End for now");
} else {
defaultRoomList();
uploadAvailableRooms();
}
}
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Wenn Sie die Datei zum ersten Mal erstellen, schreiben Sie eine leere Liste darauf. – jtahlborn
fileChecker.length() return 0 dann Datei ist leer sonst return> 0 Datei ist nicht leer zwei wenn dann die entsprechenden Methoden für jede –