새 파일 roomChecker
이 비어 있습니다. 이제 그것을 읽을 때 그것은 바람직하지 않은 EOFException을 던졌습니다. 대신 파일이 비어 있다면 if(roomFeed.size() == 0)
조건에있는 다른 두 함수를 실행합니다. 이 문은 EOFException catch 절에 작성할 수 있습니다. 하지만 그것은 내가하고 싶은 일이 아니기 때문에 파일이 읽혀지고 파일의 끝에 도달 할 때마다 그 기능을 실행할 것입니다. 대신 파일에 데이터가 있으면 else에 지정된 것을 수행해야합니다.빈 파일로 인한 EOF 예외
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() return 0 파일이 비어있는 경우 else return> 0 파일이 비어 있지 않은 경우 각각 –