0
我正在構建Java桌面應用程序並需要存儲一些數據,所以我決定創建SQLite數據庫,但我不知道應該在哪裏保存它。我想使用一些跨平臺的解決方案,它允許我將它保存在Windows中的AppData \ MyApplicationDirectory中,並在Linux的Home目錄中的某個隱藏目錄中(我想它應該在那裏,對不對?)。有沒有辦法做到這一點?JavaFX桌面應用程序中的數據存儲
我正在構建Java桌面應用程序並需要存儲一些數據,所以我決定創建SQLite數據庫,但我不知道應該在哪裏保存它。我想使用一些跨平臺的解決方案,它允許我將它保存在Windows中的AppData \ MyApplicationDirectory中,並在Linux的Home目錄中的某個隱藏目錄中(我想它應該在那裏,對不對?)。有沒有辦法做到這一點?JavaFX桌面應用程序中的數據存儲
我不認爲存在(某些版本的)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...
如何刪除這樣的文件?我的意思是當用戶卸載軟件時,我希望該存儲應該被刪除。 – Gem
你檢查出[首選項API(HTTPS:在用戶的主目錄下創建一個隱藏目錄: //docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html)? –
我一直認爲它用來存儲設置(鍵值對)而不是數據庫文件,但我會檢查出來。 – blaballong
我也這麼想過。但是,上面的鏈接頁面的一段說明了如下內容:「首選數據分級集合中的一個節點,該類允許應用程序存儲和檢索用戶和系統首選項以及配置數據,該數據永久存儲在依賴於實現的支持中典型的實現包括平面文件,特定於操作系統的註冊表,目錄服務器和SQL數據庫,這個類的用戶不需要關心後臺存儲的細節。所以顯然它可以用來存儲SQL數據庫。 –