实例:
lx1:
import java.io.*;
public class xuliehua {
public static void main(String[] args) throws Exception {
lx2();
}
public static void lx2() throws Exception {
//创建读入的对象,指定盘符、文件名称及类型。
FileInputStream fis = new FileInputStream("D:\\ja.txt");
//创建反序列化流,(readObject() 读对象)
ObjectInputStream ois = new ObjectInputStream(fis);
//读取对象内容。
Object obj = ois.readObject();
//打印。
System.out.println(obj);
//结束释放资源。
ois.close();
}
lx2:
public static void lx1() throws Exception {
//指定要写出的盘符、文件名称及类型,如果没有就创建。
FileOutputStream fos = new FileOutputStream("D:\\ja.txt");
//创建写出对象的序列化流。构造方法传递字节输出流。
ObjectOutputStream oos = new ObjectOutputStream(fos);
//自定义要写出的美容。(在构造方法里定义了什么类型就传什么)
lx1Person p = new lx1Person("徐锦江",20);
//打印。
oos.writeObject(p);
//结束资源释放。
oos.close();
//从内存到硬盘 是写出。
//从硬盘到内存 是读入。
}
}
lx2Person类:
import java.io.Serializable;
public class lx1Person implements Serializable{
//Serializable接口是启用其序列化功能的接口。
// 实现java.io.Serializable 接口的类是可序列化的。
// 没有实现此接口的类将不能使它们的任意状态被序列化或逆序列化。
public String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public lx1Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "lx1Person{" + "name='" + name + '\'' +", age=" + age + '}';
}
}