Student类实现序列化接口
package xuliehua;
import java.io.Serializable;
/**
* Serializable 空接口 标识接口
*/
public class Student implements Serializable {
/**
* 版本号1L
*/
private static final long serialVersionUID = 8L;
private int id;
private String name;
private String gender;
private int age;
public Student() {
}
public Student(int id, String name, String gender, int age) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
}
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;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "[id=" + id + ", name=" + name + ", gender=" + gender + ", age=" + age + "]";
}
}
TestObjectStream保存序列化的数据到文件student
package xuliehua;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class TestObjectStream {
public static void main(String[] args) throws IOException {
/**
* Student对象序列化输出保存到文件
* OOS--FOS文件输出流--f8
* */
Student s = new Student(4,"ant","FM",8);
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("student"));
out.writeObject(s);
out.close();
System.out.println("保存完成");
}
}
运行结果
保存完成
观察文件内容
对象序列化文件
�sr �xuliehua.Student � �I �ageI �idL �gendert �Ljava/lang/String;L �nameq ~ �xp �t �FMt �ant
Test2ObjectStream实现反序列化
package xuliehua;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class Test2ObjectStream {
/**
* 从f5文件读取反序列化数据
* 反序列化恢复学生对象
*
* OIS--FIS--f5
* @throws IOException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws ClassNotFoundException, IOException {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("student"));
Student s = (Student)in.readObject();
System.out.println(s);
in.close();
}
}
运行结果
[id=4, name=ant, gender=FM, age=8]