Java言語で、設定ファイルを書き換える処理を作成したいです。
本来設定ファイルはキー指定で値(value)を取得するという使い方をすると思うのですが、
キー指定で値(value)を書き換えることはできるのでしょうか?
例
key=contents
↓
key=contents2
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
プロパティファイル読み書き用ユーティリティとして、Commons Configuration があります。
こちらの http://commons.apache.org/proper/commons-configuration/userguide/quick_start.html クイックスタートで利用方法が簡単に紹介されています。
なおバージョン1と2がありますが、今回わたしの方で検証した2.0ではcommons-beanutilsも必要です。beanutilsのバージョンは1.9.2です。
読み込みの例:
java
1import org.apache.commons.configuration2.Configuration; 2import org.apache.commons.configuration2.PropertiesConfiguration; 3import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder; 4import org.apache.commons.configuration2.builder.fluent.Configurations; 5 6....... 7 8public void load(String propertiesFile) throws Exception { 9 Configurations configs = new Configurations(); 10 Configuration config = configs.properties(propertiesFile); 11 12 String key1 = config.getString("key1"); 13 System.out.println(key1); 14}
上書き保存の例:
java
1ublic void save(String propertiesFile) throws Exception { 2 Configurations configs = new Configurations(); 3 FileBasedConfigurationBuilder<PropertiesConfiguration> builder = 4 configs.propertiesBuilder(propertiesFile); 5 PropertiesConfiguration config = builder.getConfiguration(); 6 config.setProperty("key4", "value4"); 7 builder.save(); 8}
上書き保存の処理では、もともとあったコメントなども残ります。
投稿2016/06/01 12:42
総合スコア12011
0
propertiesファイルの読み込みにはPropertiesクラスを利用されていると思いますが、インスタンスにセットされた値をアウトプットするメソッド(store)はあります。
storeの機能で十分ならば、アウトプットする前にsetPropertiesを利用して書き換えてあげればおっけーです。
例を書いてみました(動作確認してないです)
java
1// インスタンス 2Properties properties = new Properties(); 3// 読み込み 4InputStreamReader in = new InputStreamReader(new FileInputStream("読み込み元"), "utf-8") 5properties.load(in); 6// セット 7properties.setProperty("key", "content2"); 8// 書き出し 9FileOutputStream out = new FileOutputStream("保存先"); 10properties.store(out, "任意のコメント");
コメントが維持できない等、融通が効かない為、きっちりやりたいのであれば、自分で書きだすロジック書いた方がいいかもしれないですね。
だいたいどんな事が出来るか参考にできるページがありましたので、掲載します。
投稿2016/06/01 05:19
編集2016/06/01 05:22総合スコア14
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/02 02:04
2016/06/02 04:33
2016/06/02 04:43
2016/06/02 05:34
退会済みユーザー
2016/06/13 18:14
2016/06/14 07:47