###1.データクラスをSerializableをインプリメントする
class Person implements Serializable {
private String name = "Tom";
private int age = 16;
public Person () {
}
public Person(String name ,int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
+ ", toString()=" + super.toString() + "]";
}
}
###2.ファイル出力先決める
private static String filename = String.format("D:%s99_temp%sseri", File.separator,File.separator);
###3.シリアライズする
private static void serializable (Person person ) {
try {
ObjectOutputStream oOutputStream = new ObjectOutputStream(new FileOutputStream(filename));
oOutputStream.writeObject(person);
oOutputStream.close();
} catch (FileNotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
###4.反シリアライズする、(保持ファイルをオブジェクト化する)
private static void deserializable() {
try {
ObjectInputStream oInputStream = new ObjectInputStream(new FileInputStream(filename));
Person person = (Person) oInputStream.readObject();
System.out.println(person.toString());
oInputStream.close();
} catch (ClassNotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
###5.テストする
public static void main(String[] args) {
serializable(new Person());
deserializable();
}
※結果:Person [name=Tom, age=16, getClass()=class com.yanheng.serializable.Person, hashCode()=1607521710, toString()=com.yanheng.serializable.Person@5fd0d5ae]
###6.まとめ
No. | 使用クラス、インターフェース | 備考 |
---|---|---|
1.データクラス継承 | Serializable | シリアライズ |
3.シリアライズ | ObjectOutputStream | オブジェクトの書き出し |
3.シリアライズ | FileOutputStream | ファイルの書き出し |
4.反シリアライズする | ObjectInputStream | オブジェクトの読み込み |
4.反シリアライズする | FileInputStream | ファイルの読み込み |
###サンプルコード