config.propertiesに新しいプロパティを追加しようとしています。これを行う方法はありますか?nullの場合はプロパティファイルにプロパティを追加します。
私の現在のconfigクラスは次のようになります。
package com.template;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Properties;
public class Config {
static File folder = new File(System.getProperty("user.home") + "/Documents/Electrocode Productions/template");
public static void add() {
if(!folder.exists()) {
try {
folder.mkdirs();
} catch(SecurityException e) {
Log.error(e);
}
}
Properties config = new Properties();
OutputStream output = null;
Path filePath = Paths.get(folder + "/config.properties");
if(!(filePath == null)) {
try {
output = new FileOutputStream(folder + "/config.properties");
config.setProperty("log", "true");
config.store(output, null);
} catch(IOException e) {
Log.error(e);
} finally {
if(output !=null) {
try {
output.close();
} catch(IOException e) {
Log.error(e);
}
}
}
}
}
public static String get(String value) {
Properties config = new Properties();
InputStream input = null;
try {
input = new FileInputStream(folder + "/config.properties");
config.load(input);
} catch(IOException e) {
Log.error(e);
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return config.getProperty(value).trim();
}
}
これは、あなたがそれを編集した場合、それはファイルを上書きしないように、作業されていますが、エントリを削除した場合、あなたは完全に全体を削除する必要がありますファイルを使用してそのエントリを再追加します。
最終的な目標は、プログラムを閉じて設定ファイルを編集し、新しい引数で設定ファイルを再度開くことができるようにすることですが、引数を削除すると、依存するためプログラムにクラッシュしません設定ファイルからの回答に基づいています。 (私はそれが理にかなってほしい、それは基本的にほとんどのビデオゲームのようなものだ)。
これはあまり明確ではありません。説明するために[最小限のテストケース](http://stackoverflow.com/help/mcve)を構築できますか? –
@Oliverは問題がちょうど私が "nullを返すことができなかった"ことを発見しました。私はそれを "知らない" "返す"ように変更しなければならなかった; .equals(null)の代わりにget(value).equals( "unknow")を使用します。私を助けてくれてありがとう! – BudSkywalker