2016-05-30 60 views
0

我正在構建Java桌面應用程序並需要存儲一些數據,所以我決定創建SQLite數據庫,但我不知道應該在哪裏保存它。我想使用一些跨平臺的解決方案,它允許我將它保存在Windows中的AppData \ MyApplicationDirectory中,並在Linux的Home目錄中的某個隱藏目錄中(我想它應該在那裏,對不對?)。有沒有辦法做到這一點?JavaFX桌面應用程序中的數據存儲

+0

你檢查出[首選項API(HTTPS:在用戶的主目錄下創建一個隱藏目錄: //docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html)? –

+0

我一直認爲它用來存儲設置(鍵值對)而不是數據庫文件,但我會檢查出來。 – blaballong

+0

我也這麼想過。但是,上面的鏈接頁面的一段說明了如下內容:「首選數據分級集合中的一個節點,該類允許應用程序存儲和檢索用戶和系統首選項以及配置數據,該數據永久存儲在依賴於實現的支持中典型的實現包括平面文件,特定於操作系統的註冊表,目錄服務器和SQL數據庫,這個類的用戶不需要關心後臺存儲的細節。所以顯然它可以用來存儲SQL數據庫。 –

回答

0

我不認爲存在(某些版本的)Windows上存在的AppData目錄的跨平臺等價物。

我通常在類似情況下要做的就是爲你描述的Linux(和類似):

String userHome = System.getProperty("user.home"); 
Path applicationDir = Paths.get(userHome, ".myApplication"); 
Files.createDirectories(applicationDir); 
Path databaseFile = applicationDir.resolve("database.sqlite"); 
// etc... 
+0

如何刪除這樣的文件?我的意思是當用戶卸載軟件時,我希望該存儲應該被刪除。 – Gem

相關問題