Java:关于ObjectOutputStream导致的EOFException问题

来源:互联网 发布:sql server约束 编辑:程序博客网 时间:2024/05/22 18:23

从昨晚开始调一个异常,到今天上午,没有丝毫头绪。今天中午终于在一个2012年的帖子里找到了异常的原因,现在就把这个异常和对应的处理方法写出来,希望对遇到同样问题的你有所帮助。
我遇到的异常时昨天提到的EOFException,我在一个文件里明明是有对象的,但是想读取的时候,却总是读不出来,总是抛出EOFException。因为我需要先读取出文件中的对象,然后修改这个对象里的东西,再把这个对象写进文件,就开了一个对象输入流和一个对象输出流。但是,问题就来了
这里写图片描述
就像这样,总是抛出异常。
后来在上面提到的帖子里找到了原因,这是帖子里大神说的
这里写图片描述
上课老师没有讲到对象输出流有这个特性,在api文档里也没看到,就被这个问题困扰了一晚上,我也是。。。
找到了问题原因了,就是我实例化对象输出流的时候它把我的那个文件里的内容截成了4个字节,对象自然就没了,读的时候就会读取不到从而抛出EOFException。所以,如果同时开了两个流,对象输出流的实例化不能放在对象输入流的读取前,才能保证正常的读取文件内容。就像这样,就可以正常读取了
这里写图片描述
ok,继续敲代码去了

2017/8/4 20:46
Lucifer

阅读全文
0 0
原创粉丝点击