java.io.objectOutputStream extends OutputStream 对象dui
objectOutputStream:对象的序列化流 作用:把对象一流的形式写入到文件中保存
构造方法:ObjectOutputSteam(OutputStream out)创建写入指定OutputStream的ObjectOutputStram
参数:OutputStream out:字节输出流
特有的成员方法·: void writeObject(Object obj)将指定的对象写入ObjectOutputStream
使用步骤
1、创建ObjectOutputStream对象,构造方法中传递字节输出流
2、使用ObjectOutputStream对象中的方法writeobject把对象写入到文件中
3、释放资源
对象的反序列化
java.io.ObjectInputStream extends InputStream
ObjectInputStream:对象的反序列化流
作用:把文件中保存的对象,一流的形式读取出来使用
构造方法:ObjectInputStream(InputStream in)创建从指定InputStream读取的ObjectInputStream
参数:InputStream in :字节输入流
特有的成员方法:object readObject()从ObjectInputStream读取对象
使用步骤1、创建objectInputStream对象构造方法中传递字节输入流
2、使用objectInputStream对象中的方法readObject读取保存对象的文件
3、释放资源
4、使用读取出来的对象
反序列化的前提
1、类必须实现seriaLizable
2、必须实现类对应的class文件
在序列化和反序列化的时候会抛出 NotSeriaLiableException没有序列化异常
类通过实现java.io.SeriaLiable接口,委实现此接口的类无法使其任何冲突序列化或反序列化
serializable接口也叫标记型接口
要进行序列化和反序列化的类必须实现Serialiable接口就会给这个类添加一个标记
当我们进行序列化和反序列化的时候就会检测类上是否有这个标记
有:就可以序列化和反序列化
无:就会抛出NotSerialiabkeException异常
static 关键字:静态关键字
静态优先于非静态加载到内存中(静态优先于对象进入到内存中)被static修饰的成员变量不能被序列化,序列化的都是对象
transient关键字:瞬态关键字 被transient修饰的创意能力不能被序列化