-
- All Superinterfaces:
-
Serializable
- 所有已知实现类:
-
ActivationDataFlavor
,DataFlavor
,MimeType
,MLet
,PrivateMLet
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
- 另请参见:
-
ObjectOutputStream
,ObjectInputStream
,ObjectOutput
,ObjectInput
,Serializable
-
-
方法摘要
所有方法 接口方法 抽象方法 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
- 如果找不到正在恢复的对象的类。
-
-