在序列化期间对象是否被更改?

时间:2015-04-09 22:22:20

标签: java serialization objectinputstream

我正在尝试序列化我的对象,但是当我反序列化时,所有内容都设置为null。我一定错过了什么,请帮忙。 这是序列化部分:

public static void write(Map<String, Allat> m){
  try {
      FileOutputStream fileOut = new FileOutputStream("savefile.txt");
      ObjectOutputStream out = new ObjectOutputStream(fileOut);
      //m has the correct parameters at this point
      out.writeObject(m);
      out.close();
      fileOut.close();
  }
  catch(IOException i) {
      i.printStackTrace();
  }
  System.out.println("Success.");
}

这是反序列化部分:

public static Map<String, Allat> read(String path) {
    Map<String, Allat> m;
      try {
          FileInputStream fileIn = new FileInputStream(path);
          ObjectInputStream in = new ObjectInputStream(fileIn);
          m = (Map<String, Allat>) in.readObject();
          in.close();
          fileIn.close();
      }
      catch(IOException i) {
          System.out.println("IO Exception");
          i.printStackTrace();
          return null;
      }
      catch(ClassNotFoundException c) {
          System.out.println("Allat class not found");
          c.printStackTrace();
          return null;
      }
      return m;
}

调用read方法后,结果对象中的所有内容都设置为null / 0。 “Allat”类确实实现了java.io.Serializable。谢谢你的帮助!

0 个答案:

没有答案