有没有办法保存对象的状态?

时间:2015-03-10 13:17:51

标签: java

在c中我可以简单地做一些像fwrite(file,& object,(sizeof object));保存对象中的所有动词。有没有办法在java中执行此操作?

2 个答案:

答案 0 :(得分:1)

是的,您可以使用序列化或外部化在Java中保存对象的状态。

答案 1 :(得分:1)

让您的类实现Serializable接口,然后您可以使用ObjectOutputStream序列化对象:

public class Person implements Serializable {
  public String name = "";
  public int age = 0;
}

序列化:

Person p = new Person();
p.name = "Foobar";
p.age = 42;

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:/test.txt"));
oos.writeObject(p);
oos.close();

反序列化:

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:/test.txt"));
Person p = (Person)ois.readObject();
System.out.println(p.name + " is " + p.age + " years of age.");
ois.close();