我創建了一個新文件roomChecker
,它是空的。現在,當我讀它時,它會拋出一個不希望的EOFException。相反,我希望它看到,如果文件是空的,那麼它會運行if(roomFeed.size() == 0)
條件下的其他兩個函數。我可以在EOFException catch子句中編寫此語句;但那不是我想要做的,因爲每當文件被讀取併到達文件結尾時,它都會執行這些功能。相反,當文件有一些數據時,它應該執行else中指定的內容。由空文件引起的EOFexception
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();
}
第一次創建文件時,向它寫入一個空列表。 – jtahlborn
fileChecker.length()返回0然後文件是空的否則返回> 0文件不是空的兩個如果然後發送適當的方法爲每個 –