2012-08-31 31 views
0

在我的JAVA程序中,我每小時掃描一次文件夾,檢查這些更改。如果有變化,我會收到一個唯一的號碼來識別這個文件。這些數據存儲在一個字段變量中。所以我需要在重啓或崩潰的情況下在本地存儲數據。備份變量

我的數據結構網絡化:

Map<String, Long> currentFiles = new HashMap<String, Long>(); 
Map<String, Long> prevFiles = new HashMap<String, Long>(); 

哪種備份,我應該使用?數據應該保存以防修改。數據不是保密的。

+2

數據庫,文件,雲存儲服務,傳真機(儘管更難重新上傳數據)......有很多選項。 – assylias

+0

你可能想看看http://jnotify.sourceforge.net/這可能更容易檢查更改的任務。 – nfechner

+0

將它寫入文件。 – Averroes

回答

0

你可以簡單地序列化和反序列化你的數據結構,它當然看起來可序列化。 Tip

或者,如果您更喜歡更健壯的解決方案,您可以使用簡單的數據庫(應用程序進程外部)創建數據庫表,以便它可以在崩潰後存活,並重新加載數據結構。 (例如一些簡單的基於Java的數據庫:JavaDB,h2,HSQLDB

+0

謝謝,我會看看JavaDB。聽起來很隨和 – MarcelHodan

2

爲什麼不試試在Java 7中使用WatchService?您將不需要使用自定義數據結構。

+0

很酷,不知道這存在。順便說一句,它是[WatchService](http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html) – nfechner

+0

@assylias感謝您的編輯。 –

+0

@assylias我必須使用JDK 1.6 DirectoryWatcher已經實現 – MarcelHodan