我正在尝试序列化我的对象,但是当我反序列化时,所有内容都设置为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。谢谢你的帮助!