2016-05-30 7 views
0

私はJavaデスクトップアプリケーションを構築しているので、SQLiteデータベースを作成することにしましたが、データを保存する必要があります。私はいくつかのクロスプラットフォームのソリューションを使用して、WindowsのAppData \ MyApplicationDirectoryと、Linuxのホームディレクトリのいくつかの隠しディレクトリに保存できるようにしたいと思っています。それを行う方法はありますか?JavaFXデスクトップアプリケーションのデータストレージ

+0

あなたは[環境設定API](HTTPSをチェックアウトしまし//docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html)? –

+0

私はいつもそれがデータベースファイルではなく設定(キーと値のペア)を保存するのに使われていると思っていましたが、私はそれをチェックアウトします。 – blaballong

+0

私もそう思った。しかし、上記リンクされたページの段落には、次のように書かれています。 "階層データのプリファレンスデータのノード。このクラスを使用すると、アプリケーションはユーザーとシステムのプリファレンスと構成データを格納および取得できます。一般的な実装には、フラットファイル、OS固有のレジストリ、ディレクトリサーバー、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

関連する問題