全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
インタフェース java.io.Externalizable
- public interface Externalizable
- extends Serializable
外部化により、クラスがオブジェクトの内容をストリームへ書き出すときや、読み戻すときにどのメソッドを使うかを指定できるようになります。Externalizable インタフェースの writeExternal と readExternal メソッドはクラスによって実装され、オブジェクトとそのスーパータイプのためのストリームの内容と形式をクラスが完全にコントロールできるようにします。
これらのメソッドはその状態を保存するために、スーパータイプと明確に協調動作しなければなりません。
オブジェクト直列化には Serializable および Externalizable インタフェースを使用します。オブジェクトのパーシステンスメカニズムもやはりこれを利用します。
格納される各オブジェクトは Externalizable インタフェースを持つかテストされます。
もし、オブジェクトがこれをサポートできるならば、writeExternal メソッドが呼び出されます。もし、オブジェクトが Externalizable はサポートしないが Serializable を実装するのであれば、そのオブジェクトは ObjectOutputStream を使って保存されるべきです。
Externalizable オブジェクトを再構築しなければならないときは、インスタンスは public 引数を持たない構築子で作成され、readExternal メソッドが呼び出されます。
Serializable オブジェクトは ObjectInputStream から読み出すことにより再構築されます。
- 参照:
- ObjectOutputStream, ObjectInputStream, ObjectOutput, ObjectInput, Serializable
-
readExternal(ObjectInput)
- オブジェクトはその内容をもとに戻すために readExternal メソッドを実装し、プリミティブ型のためには DataInput のメソッドを呼び出し、オブジェクト、文字列、配列のためには readObjectメソッドを呼び出す。
-
writeExternal(ObjectOutput)
- オブジェクトはその内容を保存するために writeExternal メソッドを実装し、プリミティブ値のためには DataOutputのメソッドを呼び出し、オブジェクト、文字列、配列のためには ObjectOutput の writeObject メソッドを呼び出す。
writeExternal
public abstract void writeExternal(ObjectOutput out) throws IOException
- オブジェクトはその内容を保存するために writeExternal メソッドを実装し、プリミティブ値のためには DataOutputのメソッドを呼び出し、オブジェクト、文字列、配列のためには ObjectOutput の writeObject メソッドを呼び出します。
- 例外: IOException
- I/O エラーが発生した場合。
readExternal
public abstract void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- オブジェクトはその内容をもとに戻すために readExternal メソッドを実装し、プリミティブ型のためには DataInput のメソッドを呼び出し、オブジェクト、文字列、配列のためには readObjectメソッドを呼び出します。
readExternal メソッドは、writeExternal で書き出したときと同じデータ型を同じ順序で読まなければなりません。
- 例外: ClassNotFoundException
- もとに戻したいオブジェクトのクラスが見つからない場合。
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス