我正在从ObjectInputStream中读取,我事先并不知道对象的数量。因此,使用EOF异常catch块来检测已到达文件的END并关闭文件。
这是一个好的/安全的编程习惯吗?
如果它不是一个好的方法,可以用更好的方式完成吗?
答案 0 :(得分:1)
是的,如果您以串行方式读取对象(以串行方式写入,即o1,o2,o3),则流中绝对没有其他信息。
有两种方法可以解决这个问题:
如果您通过网络发送对象流,它会有点毛茸茸,但是再次,您最好使用RMI而不是尝试手动编码。
答案 1 :(得分:1)
你没有太多选择。当对象用完时,ObjectInputStream.readObject()会抛出EOFException。除非你自己将EOS冗余编码到流中,否则你必须捕获EOFException。
答案 2 :(得分:0)
使用available()
方法可以替代吗?你可以依靠EoF之前没有返回零的流吗?