java.io.ObjectOutputStream
java.io.ObjectOutputStream extends OutputStream
ObjectOutputStream:对象的序列化流
*作用: 把对象以流的方式,保存到文件中存储,叫写对象
*构造方法:
**ObjectOutputStream(OutputStream out) 创建一个写入指定的OutputStream的ObjectOutputStream。
*参数:
**OutputStream out:字节输出流
*特有的成员方法;
**void writeObject(Object obj) 将指定的对象写入ObjectOutputStream。
*使用方法:
*1.创建OutputStream对象,绑定输出源
*2.创建建ObjectOutputStream对象,用writeObject方法把对象写入到文件中
*3.资源释放
测试例程:
public static void main(String[] args) throws IOException{
ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("ObjectOutputStreamText1.txt"));
oos.writeObject(new Person(15,"小米"));
oos.writeObject(new Person(18,"大鱼"));
oos.writeObject(new Person(21,"就趁"));
oos.close();
}
java.io.ObjectInputStream
java.io.ObjectInputStream extends InputStream
ObjectInputStream:对象反序列化流
*作用:把文件中保存的对象以流的方式读取出来使用
*构造方法:
**ObjectInputStream(InputStream in) 创建从指定的InputStream读取的ObjectInputStream。
*参数:
**InputStream in:字节输入流
*特有方法:
**Object readObject() 从ObjectInputStream读取一个对象。
***readObject中声明抛出ClassNotFoundException(Class文件找不到异常)
***当不存在对象的class文件时抛出此异常
*反序列化前提:
**1.必须实现Serializable接口
**2必须存在类对应的class文件
*使用步骤:
**1创建InputStream对象并绑定输入源
**2创建ObjectInputStream并调用readObject读取对象
**3.释放资源
测试例程:
public static void main(String[] args) throws IOException, ClassNotFoundException{
ObjectInputStream ois= new ObjectInputStream(new FileInputStream("ObjectOutputStreamText1.txt"));
Person person=(Person)ois.readObject();
System.out.println(person);
ois.close();
}