White Box技術部

WEB開発のあれこれ(と何か)

【Java/Groovy】オブジェクトのままファイルに保存して読み取れるか?

お疲れ様です。

前にSwingアプリを作ったとき、初期化でExcelのデータ解析なんかをしていたのですが、 それがいかんせん重かったので、Excelに変更がなければ再起動時はキャッシュデータを利用するようにしたいなぁと考えて、Mapデータをファイルに書き込むような作りにしました。

以下はそのときにやろうとしていることができるかを確認するために書いたコードです。
Groovyで書いてますが、メインどころはJavaのコードなので、Javaでも利用できるかと思います。

Mapオブジェクトをファイルにバイトで書き込んだものをファイル読み込みして再度使えるかをテストしたプログラム

特に凝ってるところがあるわけでもなし、Stream系クラスを使う場合はこんな風に書くよ、というメモです。ファイル操作は仕事だとあまり書かないのでよく忘れますし。

気にするところがあるとすれば、読み込むファイルのデータがバイトでなかった場合、EOFExceptionが発生します。製品などでコードを書く場合は、そこら辺のエラー処理の考慮を忘れずに。(catchして初期化処理呼び直すとか)