2016-08-08 5 views
1

私は現在jarとして実行しているJavaコードを持っています。このコードは、コード内に現在ハードコードされている特定のディレクトリ内の特定のファイルをチェックします。Javaの外部ファイルから値を取得する最も良い方法

柔軟性を高め、コードに触れないようにする。フォルダごとに別のファイルを管理したいのですが、コードはこの設定ファイルを読み込み、毎回フォルダのリストを取得して実行します。

誰もが更新できるように、コードの外にフォルダリストを維持するのが最良の選択肢であることを知りたいと思います。これにプロパティを使用できますか?プロパティファイルから動的に値を取得することができます

+1

はい、プロパティファイルは、あなたが尋ねているようなものに合理的なアプローチであるようです。 –

+1

あなたはそれを試してみましたか?あなたがしたら、何を見つけましたか?どんな問題? –

+0

誰かがファイルを変更したときに変更された値が「動的に」表示された場合、いいえ、できません。これをあなた自身で実装する必要があります。 –

答えて

0

Javaでは、外部リソースからフラットなキー/値のデータを読み込むことができるjava.util.Propertiesがあります。

動的に更新できるものが必要な場合は、より洗練されたPreferencesライブラリもあります。

  1. データをツリー構造でまとめることができます(ノードのツリーであり、各ノードは独自のキー/値設定を保存しています)。
  2. 基本型(プリミティブ型、文字列、バイナリデータ)を使用します。
  3. プラットフォーム依存の「ネイティブ」ストアを透過的に利用します(デフォルトでは、Unixシステム上のファイルシステムとWindows上のレジストリを使用します)。
  4. 必要に応じて、独自のバッキングストアを差し込みます。
  5. アプリケーション内で実行されたすべてのデータ変更を透過的に保持します。
  6. ノード/設定を登録すると、リスナーが変更され、必要に応じて変更に反応します。

APIはかなり古く更新されていませんが、廃止予定ではありません。これは主にGUIアプリケーションで使用されます(特に、IntelliJ IDEAは前回チェックしたときにPreferencesを使用して設定を保存していました)。

私は最新の分散コンフィグストアを統合することによりcross-preferencesと呼ばれるプロジェクトで作られたこのライブラリ復活させる試みもあります(例えば飼育係は、etcdまたは領事java.util.prefs.Preferencesのバッキングストアなどとウェブを提供設定管理のためのコンソール。

+0

プロパティファイルのアプローチについては、これらの例が良いと思います:https://www.mkyong.com/java/java-properties-file-examples/ – Jeutnarg

+0

@Jeutnargはこのコメントは私またはOPのためのものですか?私はそれが上記の質問にもっと適していると感じます。 –

+0

質問にはOPにいくつかのコード例が必要だと思うようになります。あなたの答えには私が書いた答えが含まれており、答えにコードは含まれていません。したがって、私はコードを何も残さないのは間違いでしょう、私は別々に答えるのが間違いでしょう、あなたの答えを編集するのは間違いでしょう。これを考慮して、私はあなたの答えを使用する場合、OPのための良いチュートリアルへのリンクにコメントしました。あなたの質問に直接答えて、それはOPのためですが、この答えが彼らが使用するものである場合のみです。 – Jeutnarg

関連する問題