java – 使用ObjectInputStream读取文件时的EOFException
发布时间:2020-12-15 02:06:55 所属栏目:Java 来源:网络整理
导读:我基本上遇到了类似的问题: EOFexception in Java when reading objectinputstream,但我找不到干净代码的答案. 答案指出,当读者到达文件结尾时,ObjectInputStream#readObject将抛出异常.在网上寻找解决方案之后,我还没有找到解决方案.对于这种情况,这可能是
我基本上遇到了类似的问题:
EOFexception in Java when reading objectinputstream,但我找不到干净代码的答案.
答案指出,当读者到达文件结尾时,ObjectInputStream#readObject将抛出异常.在网上寻找解决方案之后,我还没有找到解决方案.对于这种情况,这可能是一个很好的清洁解决方案 注意:我试过这个(但它看起来很难看并且不是干净的代码).我正在寻找更好的解决方案: 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(); 解决方法
这就是应该发生的事情.你的代码错了.检查Javadoc.如果写入null,则readObject()仅返回null.它没有说任何关于在EOF返回null的事情.循环直到readObject()返回null只会在你通过writeObject()写入null时停止,如果没有,你将得到一个EOFException.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容