Java实现序列化与反序列化

序列化:把对象转换为字节序列的过程称为对象的序列化。

反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

序列化的用途:对象一般是在程序运行过程中被创建的,所以只存在于内存中,序列化可以将对象永久的保存在磁盘上,通常保存为文件。

Java语言中使用对象输入ObjectInputStream/输出流ObjectOutputStream实现对象的序列化与反序列化

代码实现如下:

/**
 * 实现Serializable接口的对象可以实现序列化和反序列化
 */
public class SerializeWukong implements Serializable {
private static final long serialVersionUID = 530529038334680084L;
private String name = "孙行者";
public String getName() {
return name;
}
/**
* 序列化
*/
public static void serialize() throws FileNotFoundException, IOException {
SerializeWukong wukong = new SerializeWukong();
//使用对象输出流ObjectOutputStream将对象保存到文件中
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(new File("wukong.txt")));
out.writeObject(wukong);
out.close();
}
/**
* 反序列化
* @throws ClassNotFoundException
*/
public static void deserialize() throws FileNotFoundException, IOException, ClassNotFoundException {
 //使用对象输入流ObjectInputStream将文件中的对象读取到内存中
ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File("wukong.txt")));
SerializeWukong wukong = (SerializeWukong)in.readObject();
in.close();
System.out.println(wukong.getName());
}
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
//serialize();
deserialize();
}
}