サンプル
Person.java
* 「Serializable」インタフェースを実装するimport java.io.Serializable; public class Person implements Serializable { private static final long serialVersionUID = -6612003848170755512L; private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } }
DeSerializeSample.java
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; public class DeSerializeSample { @SuppressWarnings("unchecked") public static void main(String[] args) throws IOException { ObjectOutputStream objectOutputStream = null; ObjectInputStream objectInputStream = null; try { List<Person> people = new ArrayList<Person>(); Person person1 = new Person("Ken", 62); people.add(person1); Person person2 = new Person("Coco", 10); people.add(person2); // オブジェクトを丸ごと、ファイルに保存する「シリアライズ」(serialize) objectOutputStream = new ObjectOutputStream(new FileOutputStream("people.obj")); objectOutputStream.writeObject(people); objectOutputStream.flush(); // 元のデータ形式に復元する「デシリアライズ」(deserialize) objectInputStream = new ObjectInputStream(new FileInputStream("people.obj")); List<Person> newPeople = (List<Person>) objectInputStream.readObject(); // 出力 for (Person person : newPeople) { System.out.println(person.getName() + "(" + person.getAge() + ")"); } System.out.println("Done"); } catch (Exception ex) { } finally { if (objectOutputStream != null) { objectOutputStream.close(); } if (objectInputStream != null) { objectInputStream.close(); } } } }
出力結果
コンソール画面
Ken(62) Coco(10) Done
補足
* 出力されるファイル「people.obj」は、バイナリーっぽい。 * XMLで汎用的にはシリアライズ / デシリアライズしたい場合は、以下の関連記事を参照のことhttp://blogs.yahoo.co.jp/dk521123/32099558.html
参考文献
http://www.techscore.com/tech/Java/JavaSE/IO/4-2/http://java.keicode.com/lang/io-object-serialize.php