next up previous contents
Next: readObjectメソッド Up: Serialization Previous: ObjectStreamClass

writeObjectメソッド

それでは、ObjectOutputStreamクラスのwriteObjectメソッドの働きを見てみること にしましょう。 それぞれのserializableなオブジェクトのクラスは、クラスの名前、クラスの signature、オブジェクトのフィールドや配列の値を含めて、ObjectStreamClassを 用いてコードされます。 オブジェクトをストリームに書き出すのには、writeObjectメソッドを使います。 書き出されたオブジェクトは、ObjectInputStreamによって、書き込まれたのと 同じ型に同じ順序で読み出されなければなりません。 プリミティブなデータ型は、先に見たようにDataOutputの対応するメソッドで書き出さ れます。Stringは、writeUTFメソッドを用いて書き出されます。

あるオブジェクトのデフォールトのserializationのメカニズムは、まずその オブジェクトのクラスを書き、クラスのsignatureを書き、そしてtransientでも staticでもない、すべてのフィールド達の値を書き出します。他のオブジェクトに対す る参照は、基本的には、それらのオブジェクトの書き出しを引き起こします。すなわち、writeObjectは、recursiveに呼び出されます。

一つのオブジェクトが繰り返し参照される場合は、元の参照構造が正確に保存される ようなメカニズムが準備されています。



maruyama@wakhok.ac.jp