jon*_*alv 2 java file-io serialization
我发现这个页面建议循环,直到抛出异常,然后处理该异常.
基本上它的建议是:
[...]
try {
while (true) {
objectInputStream.readObject();
}
}
catch ( EOFException e ) {
\\ This ALWAYS happens
}
[...]
Run Code Online (Sandbox Code Playgroud)
然而,正如Bloch将其置于Effective Java中,人们应该只使用"异常条件下的异常",并且现在没有包含无限数量对象的输入流没有什么特别之处?它会每次都发生!
由于hasNextObjectInputStream上没有方法,我该怎么办?我是否真的坚持使用Exception来了解什么时候没有更多的对象可供阅读?
在我看来,有很多方法可以做到这一点,所有这些方法都很好:
使用例外.如你所说,API设计者没有包含一个方法来检查是否有更多,所以这部分是他们的错
写入流时使用标记对象.例如,Integer.MAX_VALUE或自定义EOFMarker对象.如果找到,请停止.
不要自己写对象,而是写一个List.然后阅读清单
| 归档时间: |
|
| 查看次数: |
2075 次 |
| 最近记录: |