- 所有父级接口:
Serializable
- 所有已知的实现类:
DataFlavor
,MLet
,PrivateMLet
只有 Externalizable 实例类的标识写入序列化流中,类负责保存和恢复其实例的内容。 Externalizable 接口的 writeExternal 和 readExternal 方法由一个类实现,使该类能够完全控制对象及其超类型的流的格式和内容。这些方法必须明确地与超类型协调以保存其状态。这些方法取代了 writeObject 和 readObject 方法的自定义实现。
对象序列化使用 Serializable 和 Externalizable 接口。对象持久性机制也可以使用它们。每个要存储的对象都针对 Externalizable 接口进行了测试。如果对象支持 Externalizable,则调用 writeExternal 方法。如果该对象不支持 Externalizable 并且实现了 Serializable,则使用 ObjectOutputStream 保存该对象。
重构 Externalizable 对象时,使用公共无参数构造方法创建一个实例,然后调用 readExternal 方法。可序列化对象通过从 ObjectInputStream 中读取来恢复。
Externalizable 实例可以通过 Serializable 接口中记录的 writeReplace 和 readResolve 方法指定替换对象。
对象序列化使用 Serializable 和 Externalizable 接口。对象持久性机制也可以使用它们。每个要存储的对象都针对 Externalizable 接口进行了测试。如果对象支持 Externalizable,则调用 writeExternal 方法。如果该对象不支持 Externalizable 并且实现了 Serializable,则使用 ObjectOutputStream 保存该对象。
重构 Externalizable 对象时,使用公共无参数构造方法创建一个实例,然后调用 readExternal 方法。可序列化对象通过从 ObjectInputStream 中读取来恢复。
Externalizable 实例可以通过 Serializable 接口中记录的 writeReplace 和 readResolve 方法指定替换对象。
- 自从:
- 1.1
- 参见:
-
方法总结
修饰符和类型方法描述void
该对象实现了 readExternal 方法,通过调用基本类型的 DataInput 方法和对象、字符串和数组的 readObject 方法来恢复其内容。void
对象实现 writeExternal 方法来保存它的内容,通过调用 DataOutput 的方法来保存它的原始值,或者调用 ObjectOutput 的 writeObject 方法来保存它的内容,对象、字符串和数组。
-
方法详情
-
writeExternal
对象实现 writeExternal 方法来保存它的内容,通过调用 DataOutput 的方法来保存它的原始值,或者调用 ObjectOutput 的 writeObject 方法来保存它的内容,对象、字符串和数组。- 参数:
out
- 将对象写入的流- 抛出:
IOException
- 包括可能发生的任何 I/O 异常
-
readExternal
该对象实现了 readExternal 方法,通过调用基本类型的 DataInput 方法和对象、字符串和数组的 readObject 方法来恢复其内容。 readExternal 方法必须以与 writeExternal 写入的相同顺序和相同类型读取值。- 参数:
in
- 从中读取数据以恢复对象的流- 抛出:
IOException
- 如果发生 I/O 错误ClassNotFoundException
- 如果找不到正在恢复的对象的类。
-