序列化流
ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。及将一个对象存入到文件中去。
我们可以看一下序列化流提供的构造方法和提供的写入方法


我们需要先创建一个类,把属性封装一下,点出空参构造 有参构造 getter setter tostring点出来。
我们将这个对象写入文件中会报一个异常notserializableexception,说这个对象未经允许,不可以序列化,我们去查一下这异常的的api,
得到当这个具有序列化接口时不抛出这个异常,所有我们要序列化的对象需要实现序列化接口serializable,实现之后我们将这个对象写入文件中去得到如下代码

我们点进serializable接口,发现里面是空的,相当于这个接口起一个标记作用,当我们需要序列化一个对象时用这个接口标记一下。
我们实现了序列化就可以进行反序列化 代码如下

当我们序列化一个对象的时候,里面有个号叫做序列化号,编译一次就会生成一个,对象的结构没有改变这个号是不变的,如果发生改变之后,反序列化会去与这个号进行对比,发现不匹配时则反序列化失败,为了避免这个情况的发生我们可以定死这个序列化号
public static finl long serialversonUID=100(固定一个值),定死之后反序列化就不会再去 对比这个值了。
如果我们不想让类中的一些属性被序列化我们可以在这个属性前加一个static或者瞬态transient,该属性就不会被序列化了。

浙公网安备 33010602011771号