线程“main”java.io.StreamCorruptedException中的异常:无效类型代码:AC [duplicate]

Exception in thread "main" java.io.StreamCorruptedException: invalid type code: AC [duplicate]

提问人:JCoder 提问时间:3/27/2015 最后编辑:user207421JCoder 更新时间:3/27/2015 访问量:2538

问:

只是想读一个数字。我正在实施,我抛出一个错误:Serializablemain()

线程“main”java.io.StreamCorruptedException中的异常:无效的类型代码:AC 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1379) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) 在 Driver.main(Driver.java:28)

代码如下:

try ( ObjectOutputStream output = new ObjectOutputStream(new 
           FileOutputStream("myFile.dat", true));){ 
           Integer a = 0;   
           output.writeObject(a); 
} 
finally{}; 
try(ObjectInputStream input = new ObjectInputStream(new 
          FileInputStream("myFile.dat")); ){ 
           Integer newNumber = 0; 
           newNumber =  input.readObject(); 
           ++newNumber; 
           System.out.println("This program has been executed " + newNumber
            + " times.");   
          input.close();
}
Java EOF 对象输入流 EOF异常

评论

4赞 RealSkeptic 3/27/2015
这个文件中存储了什么?

答:

1赞 user207421 3/27/2015 #1

文件为空,或标头后包含的实际数据少于 4 个字节(如果有)。

评论

0赞 user207421 3/27/2015
所以你没有正确编写文件。除非你用 编写它,并且你传递的对象是 ,否则你的读取代码将无法按预期工作。使用和ObjectOutputStream.writeObject()/writeUnshared()IntegerwriteInt()readInt().
0赞 user207421 3/27/2015
所以你没有按照我说的去做。你不能混合,或者相反。注意:您不能附加到writeInt()readObject(),ObjectOutputStream.
0赞 user207421 3/27/2015
什么也没告诉我。堆栈跟踪和完整异常消息始终是必需的。
0赞 user207421 3/27/2015
你仍然没有按照我描述的方式修复它。请再读一遍我在这里写的所有内容。
0赞 JCoder 3/27/2015
让我们在聊天中继续讨论