オブジェクトをファイルに保存する


オブジェクトをHardDiskなどに書きこむことが出来ます。

import java.io.*;
import java.util.*;

public  class ExamObjSerialWrite {
    public static void  main(String[] args) {
        try {
            FileOutputStream  fos  =  new FileOutputStream("tempdate.ser");
            ObjectOutputStream oos =  new ObjectOutputStream(fos);
            oos.writeObject(new Date());
        } catch(IOException ioe) {
            System.out.println(ioe);
        }
    }
}

<実行結果>
Date classを使って本日の日付と時刻を入手しています。
実行時の年月日、時分秒までが記録されます。
カレントDirectoryにtempdate.serという名前のファイルで、Dateクラスのオブジェクトが保存されました。


<シリアライズ>
オブジェクトをストリームに書き出したり、逆にストリームから読み込んだりすることをシリアライズと呼びます。
シリアライズすることが可能なオブジェクトは、java.io.Serializableインターフェースを実装しているクラスだけですが、
JDKにあるほとんどのクラスに実装されているので、それほど神経質に考えなくても良いようです。
ファイル名は任意で良いのですが、サンプルでは拡張子として.serを付けました。
理由は、JAVAの開発ツールでは、この名前の拡張子が付いたファイルを、JavaBeansとみなしてくれる為です。
つまり、本来のclassだけではなく、シリアライズされたインスタンスもJavaBeansとして扱われます。
(この内容のBeansは本当のアプリケーションでは役に立ちそうにありませんが。)


ファイルからオブジェクトを復元するサンプルコードはこちら。