java中对象反序列化 readObject()

cainiaoxiaoyu 2016-04-23 10:37:53

public class Demo {
public static void main(String[] args) throws IOException, Exception {

readObj();

//反序列化
public static void readObj() throws ClassNotFoundException, IOException {
File file = new File("D:\\userData.txt");
FileInputStream fileInputStream = new FileInputStream(file);
//建立对象的输入流对象
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
//读取对象信息
User user = (User) objectInputStream.readObject(); //执行到这句话老是报错 Exception in thread "main" java.io.InvalidClassException: ObjectStream.User; local class incompatible: stream classdesc serialVersionUID = -1824221932951318999, local class serialVersionUID = 839438564830603174

System.out.println("对象的信息:"+ user);
}
}



...全文
353 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scmod 2016-04-23
  • 打赏
  • 举报
回复
3楼正解~ 一般=1l就行
x060508 2016-04-23
  • 打赏
  • 举报
回复
你文件里面有没有写入的对象信息?
x060508 2016-04-23
  • 打赏
  • 举报
回复
UID没对上 你是不是对类 进行了修改
mousejerry1220 2016-04-23
  • 打赏
  • 举报
回复
序列化时候的对象的 serialVersionUID 和被反序列化时候的 serialVersionUID 不一致。。 序列化时候,请注意写入和读出时候的bean 都保持同样的serialVersionUID ; 建议:不要用生成出来的那一串 private static final long serialVersionUID = 1L;
  • 打赏
  • 举报
回复
你是不是 写出对象后 又对 那个类 有过修改
  • 打赏
  • 举报
回复
测试了一下没有问题,首先检查一下你的文件里边都是什么,还有就是user要实现Serializable接口

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧