1.创建一个需要序列化的类TestSerializ,要实现接口Serializable
package com.test;
import java.io.Serializable;
public class TestSerializ implements Serializable {
private static final long serialVersionUID = 1897101177587682103L;
private int id=100;
private String name="ang";
public int age=27;
public String sex="男";
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2.新建一个测试类TestExe,执行序列化和反序列化的过程
package com.test;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class TestExe {
public static void main(String[] args){
try{
TestExe te=new TestExe();
te.testOut();
te.testInput();
}catch(Exception e){
e.printStackTrace();
}
}
//序列化
public void testOut() throws IOException{
FileOutputStream fos=new FileOutputStream("E:\\ang\\serializ.out");
ObjectOutputStream objos=new ObjectOutputStream(fos);
objos.writeObject(new TestSerializ());
objos.close();
fos.close();
}
//反序列化
public void testInput() throws IOException, ClassNotFoundException{
FileInputStream fis=new FileInputStream("E:\\ang\\serializ.out");
ObjectInputStream objis=new ObjectInputStream(fis);
TestSerializ ts=(TestSerializ)objis.readObject();
System.out.println("id:"+ts.getId());
System.out.println("name:"+ts.getName());
System.out.println("age:"+ts.age);
System.out.println("sex:"+ts.sex);
}
}
3.运行结果如图: