jdk自带的序列化机制的使用

实体类


public class Car implements Serializable {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public Car(String name) {
        this.name = name;
        System.out.println("create car");
    }


    public void run() {
        System.out.println(this.name + " is run !");
    }
}

方法类

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

public class MySerialize {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        List<Car> list = new ArrayList<>();
        Car car1 = new Car("bench");
        Car car2 = new Car("BMW");
        Car car3 = new Car("Audi");

        list.add(car1);
        list.add(car2);
        list.add(car3);

        /**
         * 序列化
         * **/
        ObjectOutput objectOutput = new ObjectOutputStream(new FileOutputStream("cars"));
        objectOutput.writeObject(list.toArray());
        objectOutput.close();

        /**
         * 返序列化
         * **/
        ObjectInput objectInput = new ObjectInputStream(new FileInputStream("cars"));
        Object[] car = (Object[]) objectInput.readObject();
        ((Car)car[0]).run();
    }

}