Javaを使っていて、ユーザーが記入したデータをオブジェクトのままファイルに保存したい、ということはよくあります。セキュリティやプライバシーと無関係な場合は、できれば他のソフトからも読み込んだりしたいので独自フォーマットは避けたいという要求もあります。簡単なデータの場合はバイナリじゃなくてテキストがいいですよね。しかもXMLだと何かとステキです。XMLを扱うんだったら、ApacheのXMLサブプロジェクトに便利そうなものがたくさんあるんですが、そんなに大規模にやりたくないときは以下のようなコードがおすすめです(J2SE 1.4.2のドキュメントから抜粋しました)。
import java.beans.XMLEncoder; import java.io.BufferedOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import javax.swing.JButton; public class XMLSerialization { public static void main(String[] args) { try { /* Test.xmlというファイルにオブジェクトを書き込むXMLEncoderを定義 */ XMLEncoder e = new XMLEncoder( new BufferedOutputStream(new FileOutputStream("Test.xml"))); /* テスト的にボタンを作って出力してみる */ e.writeObject(new JButton("Hello World")); e.close(); } catch(FileNotFoundException e) { e.printStackTrace(); } } }
Java 1.5からはjava.util.PropertiesもXML対応になるのだそうで、そっちを使ってしまってもいいかもしれませんね。