可以通过ObjectInputStream和ObjectOutputStream的readObject() 和writeObject() 方法进行反序列化和序列化。
实现代码:
待序列化对象@Data
@ToString
public class LearnDTO implements Serializable {
private String name;
private int age;
private String nation;
}
序列化方法public class SerializableLearning {
public static void main(String[] args) {
LearnDTO dto = new LearnDTO();
dto.setName("gavin");
dto.setAge(18);
dto.setNation("汉");
System.out.println("序列化对象----开始");
writeObject(dto);
System.out.println("序列化对象----结束");
System.out.println("反序列化对象----开始");
readObject();
System.out.println("反序列化对象----结束");
}
public static void writeObject(LearnDTO dto) {
try (FileOutputStream file = new FileOutputStream(new File("test"));
ObjectOutputStream os = new ObjectOutputStream(file)) {
os.writeObject(dto);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readObject() {
try (FileInputStream file = new FileInputStream(new File("test"));
ObjectInputStream oi = new ObjectInputStream(file)) {
LearnDTO o = (LearnDTO) oi.readObject();
System.out.println(o.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
运行结果序列化对象----开始
序列化对象----结束
反序列化对象----开始
LearnDTO(name=gavin, age=18, nation=汉)
反序列化对象----结束