我正在尝试创建一个具有默认值的 java 属性文件,但我看到的所有示例都是用于读取已存在的 java 属性文件或写入不关心以前的内容,并且似乎并不涵盖使用默认值。
基本上我想做的是,
加载与应用程序捆绑在一起的默认配置文件(在 jar 文件内)
#File default.properties: user=default pwd=default
从应用程序根文件夹加载自定义配置文件(如果存在)。
#File user.properties: user=user name=name
如果自定义配置文件不存在,请根据与应用程序捆绑的默认配置编写带注释的“不执行任何操作”配置
#File user.properties: #user=default #pwd=default
合并两个配置文件,使用未填充键的默认值并在适当的情况下使用新值。
#File app.properties: user=user pwd=default name=name
我查看了 java .properties API 以及 java Preferences API,但首选项 API 似乎没什么用,因为配置是特定于用户的,而不是特定于应用程序的。
最佳答案
怎么样:
文件default.properties:
user=default
pwd=default
文件 user.properties:
pwd=user
name=user
将打印:{user=default, name=user, pwd=user}
class Main {
public static void main(final String [] args) throws IOException {
//load default properties
final Properties defaultProp = new Properties();
defaultProp.load(Main.class.getResourceAsStream("default.properties"));
//load user properties
final Properties userProp = new Properties();
userProp.load(new FileInputStream(new File("./user.properties")));
final Properties appProp = new Properties();
//mix properties
appProp.putAll(defaultProp);
appProp.putAll(userProp);
System.out.println(appProp);
}
}
java.util.Properties 扩展了实现 java.util.Map 的 java.util.Hashtable,因此您可以使用 Map 中的所有方法。
关于java - java 中的应用程序配置(默认),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19674086/