目次 | 前の項目 | 次の項目 Java オブジェクト直列化仕様


1.3 オブジェクトストリームからの読み込み

書き込みと同様、ストリームから読み込むことは、複雑なことではありません。

// Deserialize a string and date from a file.
    FileInputStream in = new FileInputStream("tmp");
    ObjectInputStream s = new ObjectInputStream(in);
    String today = (String)s.readObject();
    Date date = (Date)s.readObject();
まず InputStream (この場合は FileInputStream) がソースストリームとして必要です。次に、InputStream から読み込む ObjectInputStream が作成されます。そして、文字列「Today」と日付オブジェクトがストリームから読み込まれます。通常、オブジェクトは readObject メソッドで読み込まれ、プリミティブは DataInput のメソッドによってストリームから読み込まれます。

readObject メソッドは、ストリームにある次のオブジェクトを直列化復元し、readObject から他のオブジェクトへの参照を再帰的に移動して、直列化する完全なオブジェクトグラフを作成します。

プリミティブデータ型は、DataInput インタフェースのメソッド (readIntreadFloatreadUTF など) によってストリームから読み込まれます。個別のバイトと配列バイトは、InputStream のメソッドによって読み込まれます。直列化可能フィールド以外のプリミティブデータはブロックデータレコードから読み込まれます。

ObjectInputStream を拡張すれば、クラスに関してストリームにある情報を利用したり、直列化復元されたオブジェクトを置き換えることができます。詳細は、resolveClassresolveObject メソッドの説明を参照してください。



目次 | 前の項目 | 次の項目
Copyright © 1997-2001 Sun Microsystems, Inc. All Rights Reserved.