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