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);
}
}

解决方案 »

  1.   

    测试了一下没有问题,首先检查一下你的文件里边都是什么,还有就是user要实现Serializable接口
      

  2.   

    序列化时候的对象的   serialVersionUID  和被反序列化时候的 serialVersionUID   不一致。。序列化时候,请注意写入和读出时候的bean 都保持同样的serialVersionUID ;
     
    建议:不要用生成出来的那一串
    private static final long serialVersionUID = 1L;
      

  3.   

    UID没对上 你是不是对类 进行了修改