目次 | 前の項目 | 次の項目 | Java オブジェクト直列化仕様 |
直列化により、ストリーム内の直列化可能フィールドにアクセスするための 2 つの機構が提供されます。
Serializable
インタフェースを実装し、それ以上のカスタマイズを行わないオブジェクトの読み込みまたは書き込みを行う場合は、デフォルトの機構が自動的に使われます。直列化可能フィールドは、クラスの対応するフィールドにマッピングされ、値はそれらのフィールドからストリームに書き込まれるか、または読み込まれてそれぞれのフィールドに割り当てられます。クラスがwriteObject
およびreadObject
メソッドを提供する場合は、defaultWriteObject
およびdefaultReadObject
を呼び出すことによって、デフォルトの機構が呼び出されます。writeObject
およびreadObject
メソッドが実装される場合は、直列化可能フィールドの値が書き込まれる前、または読み込まれたあとに、クラスがそれらの値を修正できます。デフォルトの機構を使用できない場合は、直列化可能クラスは、
ObjectOutputStream
のputFields
メソッドを使って、直列化可能フィールドの値をストリームに配置できます。ObjectOutputStream
のwriteFields
メソッドは、値を正しい順序で配置してから、直列化の既存のプロトコルを使ってストリームにそれらの値を書き込みます。同様に、ObjectInputStream
のreadFields
メソッドは、ストリームから値を読み込み、クラスが名前で (かつ任意の順序で) それらの値を取得できるようにします。直列化可能フィールド API の詳細は、「2.2 ObjectOutputStream.PutField クラス」および「3.2 ObjectInputStream.GetField クラス」を参照してください。