java对象序列化与反序列化的实现
一、首先创建一个java对象,实现序列化接口,为序列化和反序列化做准备
1 import java.io.Serializable; 2 3 /** 4 * 实现序列化接口,为序列化和反序列化测试做准备 5 */ 6 public class Car implements Serializable { 7 8 private int height; 9 10 private String color; 11 12 public Car(int height, String color) { 13 this.height = height; 14 this.color = color; 15 } 16 17 @Override 18 public String toString() { 19 return "Car{" + 20 "height=" + height + 21 ", color='" + color + '\'' + 22 '}'; 23 } 24 25 }
二、编写测试类,编写实现序列化和反序列化的代码
1 import java.io.*; 2 3 public class SerializableTest { 4 5 public static void main(String[] args) throws IOException, ClassNotFoundException { 6 //序列化过程,文件后缀可以随意 7 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("car1.ser")); 8 Car car1 = new Car(175, "白色"); 9 oos.writeObject(car1); 10 oos.close(); 11 12 //反序列化过程 13 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("car1.ser")); 14 Car car2 = (Car) ois.readObject(); 15 System.out.println("car2:" + car2); 16 ois.close(); 17 } 18 19 }
三、单独运行序列化代码和反序列化代码即可得到测试结果
1 car2:Car{height=175, color='白色'}