序列化:将Java对象转换为二进制序列保存到文件中或网络中;
反序列化:将二进制序列读取并转换成Java对象;
实现方法一:
//序列化
FileOutputStream output = new FileOutputStream("/Users/liuqiang/Documents/temp/test.txt");
ObjectOutputStream outputStream = new ObjectOutputStream(output);
outputStream.writeObject(student);
//反序列化
FileInputStream input = new FileInputStream("/Users/liuqiang/Documents/temp/test.txt");
ObjectInputStream inputStream = new ObjectInputStream(input);
Student studentFan = (Student) inputStream.readObject();
System.out.println(studentFan);
ObjectOutputStream 对象输出流(实现序列化)
void writeObject(Object obj) 保存对象
ObjectInputStream 对象输入流(实现反序列化)
void readObject() 读取对象
注意:序列化的对象必须实现Serializable接口,否则会出现异常NotSerializableException;
实现方法二:
使用jackson实现
Student student = new Student();
ObjectMapper objectMapper = new ObjectMapper();
//序列化
String serial = objectMapper.writeValueAsString(student);
System.out.println(serial);
//反序列化
Student readValue = objectMapper.readValue(serial, Student.class);
System.out.println(readValue);