2011-10-25 28 views
6

Có thể lưu trạng thái hiện tại của một chương trình java và sau đó tải lại nó không? Chương trình khá phức tạp. Tôi chỉ cần có thể lưu trạng thái hiện tại vào một tệp và sau đó tải lại nó. Bạn có thể xin vui lòng giới thiệu tôi đến một thư viện java hoặc một nơi để đọc thêm về điều đó từ.Phương pháp Java để lưu trạng thái hiện tại của một chương trình

+2

Không chắc chắn nếu bạn sẽ có thể để lại đầy đủ tất cả mọi thứ 1-1, nhưng hầu hết các chương trình mà làm tiết kiệm nhà nước, thực hiện bán phá giá của các biến trong một tập tin. Nếu cùng một trạng thái cần được tiếp tục, nó chỉ tải lại nó từ tệp. Đây là cách "Lưu trạng thái" của Trò chơi hoạt động. –

+0

Xem [chủ đề này] (http://stackoverflow.com/questions/7777640/what-is-the-best-practice-for-setting-jframe-locations-in-java/7778332#7778332) cho một ví dụ đơn giản (chỉ là một vài thuộc tính) của việc lưu/khôi phục trạng thái. Đối với một trạng thái phức tạp hơn, nó sẽ là giá trị tạo ra một bean có thể được viết/đọc bằng cách sử dụng ['XMLEncoder'] (http://download.oracle.com/javase/7/docs/api/java/beans/XMLEncoder. html)/['XMLDecoder'] (http://download.oracle.com/javase/7/docs/api/java/beans/XMLDecoder.html). –

Trả lời

9

Không có cách nào thực sự để "lưu trữ trạng thái của toàn bộ JVM" như vậy.

Nhưng bạn có thể đóng gói trạng thái có liên quan của ứng dụng trong một hoặc nhiều đối tượng và sau đó sắp xếp từng hàng các đối tượng đó. Điều đó nghe có vẻ phức tạp hơn nó thực sự là, bởi vì hầu hết các trạng thái của ứng dụng của bạn là đã (chủ yếu) được đóng gói trong một số đối tượng.

This serialization tutorial cung cấp thêm thông tin, để biết thêm chi tiết see this page.

+0

Cảm ơn câu trả lời. Nó thực sự hữu ích. – Zee

2

"trạng thái" của chương trình java là một con thú phức tạp. Điều này sẽ bao gồm heap hoàn chỉnh, điểm thực hiện của tất cả các chủ đề, giá trị của biến cục bộ ...

Có thể bạn chỉ muốn lưu một số trạng thái và sau đó tải chương trình mới này. Bạn có thể sử dụng các lớp trong java.io để ghi trạng thái vào tệp và sau đó đọc lại chúng.

http://download.oracle.com/javase/7/docs/api/java/io/package-summary.html

Các vấn đề liên quan