Java中要序列化一个对象,必须与一定的对象I/O流联系起来,通过对象输出流将对象状态保存下来,再通过对象输入流将对象状态恢复。
java.io包中,提供了ObjectInputStream和ObjectOutputStream将数据流功能扩展至可读写对象 。
在ObjectInputStream 中用readObject()方法可以直接读取一个对象,
ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。
序列表方法:
public static void serializeToFile(Object o, String fileName) throws FileNotFoundException, IOException {
ObjectOutputStream os = new ObjectOutputStream(
new FileOutputStream(fileName));
os.writeObject(o);
os.flush();
os.close();
}
反序列化方法:
public static Object deserializeFromFile(String fileName) throws FileNotFoundException, IOException, ClassNotFoundException {
ObjectInputStream is = new ObjectInputStream(new FileInputStream(fileName));
return is.readObject();
}