首先定义一个类。
public class MyFile implements Serializable {
private static final long serialVersionUID = 1L;
private String fileName;
private int size;
public void setFileName(String fileName) {
this.fileName = fileName;
}
public void setSize(int size) {
this.size = size;
}
public String getFileName() {
return fileName;
}
public int getSize() {
return size;
}
public MyFile(String fileName, int size) {
this.fileName = fileName;
this.size = size;
}
}
序列化和反序列化:
public class SerializableTest {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("save.out");
ObjectOutputStream oos = new ObjectOutputStream(fos);
MyFile file01 = new MyFile("早起之王",20);
oos.writeObject(file01);
oos.flush();
oos.close();
}
}
public class ReverSerializableTest {
public static void main(String[] args)throws IOException, ClassNotFoundException {
FileInputStream fis = new FileInputStream("save.out");
ObjectInputStream ois = new ObjectInputStream(fis);
MyFile file02 = (MyFile)ois.readObject();
System.out.println(file02.getFileName() + " " + file02.getSize());
}
}
我们先运行序列化,再运行反序列化,得到的结果如下:
于此同时,我们的项目文件夹下,多出了一个文件:
用记事本打开的话,可以看到并不是 “早起之王 20” 。这就是我们的序列化起了作用。
早睡早起,注意身体。早起之王祝你风生水起!