我是Java的新手,我正在学习反序列化,同时我在学习classcastexception
我在一类中进行了序列化,而另一类进行了反序列化
序列化
zipfile f = new zipfile(30,"kavin");
ArrayList<zipfile> a = new ArrayList<zipfile>(101);
a.add(f);
String file = "def.txt";
try {
FileOutputStream fi = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(fi);
s.writeObject(f);
System.out.println(f.age);
s.close();
fi.close();
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
反序列化
String file = "def.txt";
try {
FileInputStream fi = new FileInputStream(file);
ObjectInputStream s = new ObjectInputStream(fi);
f=(deserialization)s.readObject();
System.out.println(f.age);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
输出
线程“ main”中的异常java.lang.ClassCastException:无法将demo2.zip文件转换为demo2.deserialization 在demo2.deserialization.main(deserialization.java:69)
答案 0 :(得分:0)
在处理序列化时必须牢记以下几点:
尝试查看您的代码,查找是否是上述情况之一。
有关更多帮助,请参阅-Serialization in Java
的来源