オブジェクトをファイルに保存する
オブジェクトを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は本当のアプリケーションでは役に立ちそうにありませんが。)
ファイルからオブジェクトを復元するサンプルコードはこちら。