Java FileInputStream/ObjectInputStream:StreamCorruptedException:格式错误
从文件读取序列化对象时,我得到: java.io.StreamCorruptedException:格式错误:0 实现Serializable的对象按如下方式保存和还原: 保存: 恢复:Java FileInputStream/ObjectInputStream:StreamCorruptedException:格式错误,java,android,serialization,Java,Android,Serialization,从文件读取序列化对象时,我得到: java.io.StreamCorruptedException:格式错误:0 实现Serializable的对象按如下方式保存和还原: 保存: 恢复: try { FileInputStream fileInputStream = getContext().openFileInput("gameState.ser"); ObjectInputStream objectInputStream = new ObjectInp
try {
FileInputStream fileInputStream = getContext().openFileInput("gameState.ser");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
gameAssets = (GameAssets) objectInputStream.readObject();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
由于您尚未发布相关代码,我不确定是这种情况,还是错误的来源
但在写入流之后,您应该始终关闭它们。确保gameAssets上的所有字段都是可序列化的。如果其中一个不是异常,则可以将其打印到您创建的文件中,这可能导致读取该文件时出现异常
try {
FileInputStream fileInputStream = getContext().openFileInput("gameState.ser");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
gameAssets = (GameAssets) objectInputStream.readObject();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}