存储/恢复整个应用程序的快照/状态

时间:2016-08-11 18:57:20

标签: java state store restore

我想存储整个应用程序状态,然后在下次启动时恢复它。有一个图书馆会让我更容易吗?或者你们中有人有什么建议吗?

独立应用程序

1 个答案:

答案 0 :(得分:0)

有一种用于您的紫癜的设计模式,它是Memento模式。

  

纪念品模式由三个对象实现:创始人,看护人和纪念品。发起者是一个具有内部状态的对象。看护人会对创始人做点什么,但希望能够撤消变更。看护人首先要求发起人提供纪念品。然后它执行它将要执行的任何操作(或操作序列)。要回滚到操作之前的状态,它会将memento对象返回给发起者。纪念品对象本身是一个不透明的对象(看护人不能或不应该改变的对象)。 - 维基百科

您可以阅读Wiki页面中提供的示例,以了解如何在代码中使用它。

如果要将对象的状态保存为文件,并且即使在程序执行结束后也可以使用它,则应在要存储的类中实现Serializable接口。

示例:

public class Example implements Serializable
    {

    }

并在那里实例化该类:

try{

    Example c = new Example();
    FileOutputStream fout = new FileOutputStream("YOURPATH");
    ObjectOutputStream oos = new ObjectOutputStream(fout);   
    oos.writeObject(c);
    oos.close();
    System.out.println("Done");

   }catch(Exception ex){
       ex.printStackTrace();
   }