JavaTM 2 Platform
Standard Ed. 6

java.io
介面 Externalizable

所有父級介面:
Serializable
所有已知子介面:
RemoteRef, ServerRef
所有已知實作類別:
ActivationDataFlavor, DataFlavor, MimeType, MLet, PrivateMLet

public interface Externalizable
extends Serializable

Externalizable 實例類別的唯一特性是可以被寫入序列化串流中,該類別負責保存和恢復實例內容。 若某個要完全控制某一對象及其父級類別型的串流格式和內容,則它要實作 Externalizable 介面的 writeExternal 和 readExternal 方法。這些方法必須顯式與父級類別型進行協調以保存其狀態。這些方法將代替定制的 writeObject 和 readObject 方法實作。
Serialization 物件將使用 Serializable 和 Externalizable 介面。物件持久性機制也可以使用它們。要存儲的每個物件都需要檢測是否支持 Externalizable 介面。如果物件支持 Externalizable,則調用 writeExternal 方法。如果物件不支持 Externalizable 但實作了 Serializable,則使用 ObjectOutputStream 保存該物件。
在重構 Externalizable 物件時,先使用無參數的公共建構子創建一個實例,然後調用 readExternal 方法。通過從 ObjectInputStream 中讀取 Serializable 物件可以恢復這些物件。
Externalizable 實例可以通過 Serializable 介面中記錄的 writeReplace 和 readResolve 方法來指派一個替代物件。

從以下版本開始:
JDK1.1
另請參見:
ObjectOutputStream, ObjectInputStream, ObjectOutput, ObjectInput, Serializable

方法摘要
 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 - 如果無法找到需要恢復的某個物件的類別。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only