使用默认值在java中的应用程序配置

时间:2013-10-30 04:49:04

标签: java properties

我正在尝试使用默认值创建一个java属性文件,但我看到的所有示例都是为了读取已经存在的java属性文件或写不关心以前的内容,并且似乎没有封面使用默认值。

基本上我要做的是,

  1. 加载与应用程序捆绑在一起的默认配置文件(在jar文件中)

    #File default.properties:
    user=default
    pwd=default
    
  2. 从应用程序根文件夹(如果存在)加载自定义配置文件。

    #File user.properties:
    user=user
    name=name
    
  3. 如果自定义配置文件不存在,请根据与应用程序捆绑的默认配置编写注释“不执行任何操作”配置

    #File user.properties:
    #user=default
    #pwd=default
    
  4. 合并两个配置文件,使用未填充密钥的默认值并在适当的位置使用新值。

    #File app.properties:
    user=user
    pwd=default
    name=name
    
  5. 我查看了java .properties API以及java Preferences API,但首选项API似乎没用,因为配置是特定于用户的,而不是特定于应用程序。

1 个答案:

答案 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中的所有方法。