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();
}
}