新しいファイルroomChecker
が作成されましたが、これは空です。今私はそれを読んで、それは私に望ましくないEOFExceptionをスローします。代わりに、ファイルが空であれば、それはif(roomFeed.size() == 0)
の状態にある他の2つの関数を実行します。私はこの文を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 else return 0ファイルが空でない2それぞれが適切なメソッドを送信した場合 –