投稿

ラベル(シリアライズ)が付いた投稿を表示しています

[Java] シリアライズとデシリアライズ

入出力ストリームを利用してインスタンスをファイルに書き出すことをシリアライズ、ファイルから読み込むことをデシリアライズと言います。 Serializableインターフェース Serializableインターフェースはシリアライズ、デシリアライズさせたいクラスに実装させるインターフェースです。 このインターフェースは、マーカーインターフェースといい、シリアライズするクラスであるということをJVMへ示すためだけのものです。メソッドは何も持っていません。 コード例 ここではidとnameというフィールドを保持するPersonクラスを定義し、Serializableインターフェースを実装しています。 import java.io.Serializable; public class Person implements Serializable { private int id; private String name; public Person(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "id:" + id + ", name:" + name; } } Serializableインターフェースはマーカーインターフェースであり、JVMがシリアライズ可能と判別するためのもの。メソッドは持たない。 シリアライズ ObjectOutputStreamクラス オブジェクトをシリアライズしてファイルに書き出すにはObjectOutputStreamクラスを使用します。 ObjectOutputStreamクラスのインスタンスを取得 ObjectOutputStreamクラスのコンストラクタは、FileOutputStreamクラスのオブジェクトを引数に取ります。 FileOutputStream fstream = new FileOutputStream("output/test.ser"); ObjectOutp