- ベストアンサー
オブジェクト自身のバイナリファイルからのインスタンス化は可能?
ある情報の塊として存在する任意のオブジェクト(インスタンス化されたクラス)そのものをバイナリ化してファイルに落とし、再びそのファイルからもとのオブジェクトそのものを復旧させる処理はJavaでは可能なのでしょうか? 可能であれば、それはどのように行うのでしょうか? Import・Export(インスタンス化/バイナリファイル化)相互作用をサポートする既存インターフェースがJavaには存在するのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1さんのおっしゃっている通り、ObjectInputStreamなどで出来ます。 この場合、出力されるのは(ファイルなど)バイナリ形式になります ただこれを使うと、ファイル出力した後にクラスを直すと、読めなくなったと思います。 (処理が中断される) j2sdk1.4からは、java.beans.XMLEncoder、java.beans.XMLDecoderというものがあり、 同じような機能を実現しています。 ・こちらは、出力されるのは、バイナリではなくXML形式。 ・クラスに変更があっても復元できる(処理の継続ができる)。 用途に応じて使い分けるのがいいでしょう。
その他の回答 (1)
- liar_adan
- ベストアンサー率48% (730/1515)
回答No.1
ありますよ。Serializable(直列化)という機能です。 java.io.Serializableインタフェースをimplementして、 ObjectInputStream, ObjectOutputStreamを使って読み書きします。 詳しくはJDKマニュアルのjava.io.Serializableのところを見てください。