为了账号安全,请及时绑定邮箱和手机立即绑定

反序列化时如何判断是否已经读到末尾?

反序列化时如何判断是否已经读到末尾?

慕容3067478 2019-03-12 17:15:40
将一组对象序列化到文件中,然后将这些对象用readObject()方法读取出来,如果使用一个while循环来判断对象不为空的方式读取,最后会因为读取到文件末尾继续读取抛出一个EOFExcetion。Object obj = null;while(null != (obj = ois.readObject())){    ...}目前暂时有2个想法:定义一个变量用来存储序列化对象的个数,读取时使用这个变量来作为反序列化的条件。捕获EOFException。以上2种方法是否可靠,不知道有没有更好的实现能代替以上2种方法,或者使用其他方法实现反序列化。
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

建议使用第一种方法,因为序列化本身也都是采用这种方法来实现的,即对于可变长度的变量,都保存一个长度用来读取,这样能有效提高数据的准确性和运行的效率。


查看完整回答
反对 回复 2019-04-17
  • 1 回答
  • 0 关注
  • 770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信