2016-08-11 3 views
0

Я хочу сохранить все состояние приложения, а затем восстановить его при следующем запуске. Есть ли библиотека, которая облегчит мне? Или у кого-нибудь из вас есть предложения?Хранить/Восстановить моментальный снимок/состояние всего приложения

Standalone Применение

+0

какое приложение? Веб или автономный? – JavaHopper

+0

автономное приложение – Eric

+0

Я бы сериализовал все объекты, которые находятся в моем приложении во время выполнения – JavaHopper

ответ

0

Существует модель конструкции, которая используется для purpouse, и это Memento шаблон.

Мемориальный узор выполнен с тремя объектами: создателем, смотрителем и памятником. Создателем является некоторый объект, который имеет внутреннее состояние. Смотритель собирается что-то сделать с создателем, но хочет отменить изменения. Смотритель сначала спрашивает создателя для памятного предмета. Затем он выполняет любую операцию (или последовательность операций), которую он собирается делать. Чтобы вернуться к состоянию перед операциями, он возвращает объект-памятник отправителю. Сам объект памяти - непрозрачный объект (тот, который смотритель не может или не должен менять). - Википедия

Вы можете прочитать пример, представленный на странице вики, чтобы понять, как его использовать внутри вашего кода.

Если вы хотите сохранить состояние объекта в виде файла и предоставить его доступным даже после завершения выполнения вашей программы, вы должны реализовать интерфейс 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(); 
    } 
+0

Пожалуйста, отметьте мой ответ как правильно :) –

+0

@ Эрик Вы можете избежать этой стратегии. Представьте себе: кто-то использует ваше приложение. Объект 'Example' сохраняется на своем диске при выходе. Однажды вы обнаружите ошибку/ошибку в «примере» (возможно, вы неправильно использовали слово), поэтому вы редактируете «Пример», чтобы исправить ошибку. Когда люди открывают приложение для резервного копирования, он попытается загрузить объект 'Example' с диска **, но будет терпеть неудачу **, так как исправление ошибки фактически изменяет двоичное представление' Example'. Сериализация объектов «реализация утечек», предотвращающая модификацию класса, если экземпляры уже существуют вне приложения (на вашем диске) –

Смежные вопросы