我正在进行一项应该打开序列化文件并输出它的学校作业。我无法弄清楚它为什么不打印任何东西。看起来循环根本不起作用。有什么想法吗?
public ReadFile()
{
try
{
fis = new FileInputStream("Clients.ser");
ois = new ObjectInputStream(fis);
}
catch(Exception e) {}
try
{
while(true)
{
//cast according to class Record
r = (Record) ois.readObject();
System.out.print(r.account + r.firstName + r.lastName + r.balance);
}
}
catch(IOException ioe) { ioe.printStackTrace(); }
catch(ClassNotFoundException cnfe) {}
}
修改
向IOException
添加了一个堆栈跟踪并返回:
Record; local class incompatible: stream classdesc serialVersionUID = 5124020354301486787, local class serialVersionUID = -8881068308941519505
答案 0 :(得分:3)
该消息表示您尝试反序列化的类与您指定的类不同。
你是否按照序列化的方式给了Record课程,或者你自己写了吗?