java.util.Properties
私は最近、独自の関数を作成せずに設定を読み書きできることを知りました。
とても使いやすいのでワクワクしましたが、後で変更した構成ファイルを保存したときに欠陥に気付きました。
これが私のコードです。今のところ非常に単純です。
FileWriter writer = null;
Properties configFile = new Properties();
configFile.load(ReadFileTest.class.getClassLoader().getResourceAsStream("config.txt"));
String screenwidth = configFile.getProperty("screenwidth");
String screenheight = configFile.getProperty("screenheight");
System.out.println(screenwidth);
System.out.println(screenheight);
configFile.setProperty("screenwidth", "1024");
configFile.setProperty("screenheight", "600");
try {
writer = new FileWriter("config.txt" );
configFile.store(writer, null);
} catch (IOException e) {
e.printStackTrace();
}
writer.flush();
writer.close();
私が気付いた問題は、編集しようとしている構成ファイルが次のように保存されていることです。
foo: bar
bar: foo
foobar: barfoo
ただし、後の出力properties.store(writer, null)
は次のとおりです。
foo=bar
bar=foo
foobar=barfoo
私が編集する構成ファイルは私のプログラム用ではありません。構成ファイルを上記の区切り記号付きの形式にする必要がある他のアプリケーション用:
です。そうしないと、構成がデフォルトにリセットされます。
これを簡単に変更する方法を知っている人はいますか?
最初の 5 つの Google ページを検索しましたが、同様の問題を抱えている人は見つかりませんでした。Javadoc も確認しましたが、自分でクラスを作成せずに Javadoc を変更できる関数は見つかりませんでした。Properties
置いてあってとても使いやすいので、とりあえず使ってみたいと思います。また、ファイルを保存した後にすべて=
を置き換えるという考えもありましたが、誰かがより良い提案を得たのでしょうか?: