this pageは、例外がスローされるまでループし、その例外を処理することを示唆しています。java.io.ObjectInputStreamから不明な数のオブジェクトをうまく読み込む方法を教えてください。
は、基本的にはどのようなことが示唆している:ブロッホは、効果的なJavaでそれを置くよう
は[...]
try {
while (true) {
objectInputStream.readObject();
}
}
catch (EOFException e) {
\\ This ALWAYS happens
}
[...]
しかし、一つは唯一の「例外条件の例外を使用する」必要があるとのInputStreamを含有しない程度の例外は何が本当にありませんオブジェクトの無限の数は今そこにありますか?それは毎回起こるでしょう!
ObjectInputStreamにはhasNext
メソッドがないため、何ができますか?私は本当に読み込み可能なオブジェクトがなくなった時を知るためにExceptionを使うことに固執していますか?
それらをすべて1つの配列/ 'List'に入れ、それを一読しますか? (配列と 'List'の両方に問題があります(参照配列は一般的に悪いですが、一般的なオブジェクトはデシリアライゼーションの根として良いです)、おそらく"カスタム "の意味のあるオブジェクトをデシリアライズするのが最も良いでしょう) –
しかし、同じ時間にファイルの内容全体をメモリに保持することができます... – jonalv
これらのファイルは、逆参照のためにメモリに格納されます。 ( 'readUnshared'は実際にあなたを助けることはほとんどありません。) –