我正在尝试使用默认值创建一个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似乎没用,因为配置是特定于用户的,而不是特定于应用程序。
答案 0 :(得分:1)
怎么样:
文件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中的所有方法。