Module  java.base
软件包  java.io

Interface Externalizable

  • All Superinterfaces:
    Serializable
    All Known Subinterfaces:
    RemoteRefServerRef
    所有已知实现类:
    ActivationDataFlavorDataFlavorMimeTypeMLetPrivateMLet


    public interface Externalizable
    extends Serializable
    只有Externalizable实例的类的身份才能写入序列化流中,并且该类负责保存和恢复其实例的内容。 Externalizable接口的writeExternal和readExternal方法由一个类来实现,可以使类完全控制对象及其超类型的流的格式和内容。 这些方法必须明确地与超类型协调来保存其状态。 这些方法取代了writeObject和readObject方法的定制实现。
    对象序列化使用Serializable和Externalizable接口。 对象持久化机制也可以使用它们。 要存储的每个对象都被测试为Externalizable接口。 如果对象支持Externalizable,则调用writeExternal方法。 如果对象不支持Externalizable,并且实现Serializable,则使用ObjectOutputStream保存对象。
    当一个Externalizable对象被重建时,使用public no-arg构造函数创建一个实例,然后调用readExternal方法。 可从ObjectInputStream读取可序列化对象。
    Externalizable实例可以通过Serializable接口中记录的writeReplace和readResolve方法来指定一个替换对象。
    从以下版本开始:
    1.1
    另请参见:
    ObjectOutputStreamObjectInputStreamObjectOutputObjectInputSerializable
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      void readExternal​(ObjectInput in)
      该对象实现了readExternal方法来恢复其内容,方法是为对象,字符串和数组调用基本类型的DataInput方法和readObject。
      void writeExternal​(ObjectOutput out)
      该对象实现了writeExternal方法来通过调用DataOutput的原始值或调用ObjectOutput的对象,字符串和数组的writeObject方法来保存其内容。
    • 方法详细信息

      • writeExternal

        void writeExternal​(ObjectOutput out)
                    throws IOException
        该对象实现了writeExternal方法来通过调用DataOutput的原始值或调用ObjectOutput的对象,字符串和数组的writeObject方法来保存其内容。
        参数
        out - 将对象写入的流
        异常
        IOException - 包括可能发生的任何I / O异常
      • readExternal

        void readExternal​(ObjectInput in)
                   throws IOException,
                          ClassNotFoundException
        该对象实现了readExternal方法来恢复其内容,方法是为对象,字符串和数组调用基本类型的DataInput方法和readObject。 readExternal方法必须以与writeExternal写的相同的顺序读取相同的值。
        参数
        in - 为了恢复对象,读取数据的流
        异常
        IOException - 如果发生I / O错误
        ClassNotFoundException - 如果找不到正在恢复的对象的类。