Serializable
Serializableインターフェースを実装するクラスはWebアプリの場合はサーバー側により直列化されますが、それ以外の場合には独自で直列化しないといけない
import java.io.Serializable;
public class Sample implements Serializable {
private String name;
//以下アクセサメソッド
}
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
public class Client {
public static void main(String[] args) throws Exception {
//オブジェクトを直列化
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("saple"));
out.writeObject(new Sample());
out.flush();
out.close();
//直列化されたオブジェクトを復元
ObjectInputStream in = new ObjectInputStream(new FileInputStream("sample"));
Sample smp = (Sample)in.readObject();
in.close();
}
}
備考
オブジェクト状態をファイルにダンプしないで単純にbyte[]で取得したい場合には以下のようにjava.io.ByteArrayOutputStreamを使用する
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(oos);
oos.writeObject(new Object());
oos.close();
byte[] b = baos.toByteArray();
もちろん復元する時はjava.io.ByteArrayInputStreamを使用する