1

プロパティを使用して Java の構成ファイルを変更しようとしています。次のように、複数のエントリのうちの 2 つを変更しようとしています。

Properties properties = new Properties();
FileInputStream fin = null;
FileOutputStream fout = null;
fin  = new FileInputStream(mCallback.getConfFile());
fout  = new FileOutputStream(mCallback.getConfFile());
properties.load(fin);
properties.setProperty(Wrapper.GAME_PATH_KEY, (String)gamePathText.getText());
properties.setProperty(Wrapper.GAME_TYPE_KEY, (String)selectedGame.getSelectedItem());
properties.store(fout, null);

しかし、結果の後にファイルを確認すると、ファイル全体が上書きされ、これら 2 つのエントリだけが残っていることがわかりました。これは Android アプリですが、ここの問題とは関係がないと思います。私が間違っていることは何ですか?

4

3 に答える 3

3

すべてのプロパティを読み取ってから、必要なプロパティを変更する必要があります。その後、すべてをファイルに書き込む必要があります。アイテムの変更のみを行うことはできません。プロパティ API は、変更する機能を提供していません。

編集:

これらの 2 つのステートメントを交換します。

fout  = new FileOutputStream(mCallback.getConfFile());
properties.load(fin);

同じ名前のファイルを作成する前に、最初にロードする必要があります。

于 2013-08-22T14:39:33.277 に答える