私は基本的にここで述べたのと同様の問題を抱えています:objectinputstreamを読み取るときのJavaでのEOFexceptionですが、クリーンなコードで答えが見つかりません。
答えはObjectInputStream#readObject
、リーダーがファイルの終わりに到達したときに例外をスローすることを示しています。Webで解決策を探しましたが、解決策が見つかりませんでした。この場合の良い、きれいな解決策でしょうか?
注:私はこれを試しました(しかし、見た目は醜く、クリーンなコードではありません)。私はより良い解決策を探しています:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
try {
Object o;
while ((o = ois.readObject()) != null) {
if (o instanceof MyClass) {
MyClass m = (MyClass)o;
//use the object...
}
}
} catch (EOFException eofex) {
//do nothing
} catch (IOException ioex) {
throw ioex;
//I have another try/catch block outside to control the life of the ObjectInputStream
}
//later in the code...
ois.close();