0

我正在尝试使用默认值创建一个 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
    

我查看了 java .properties API 以及 java Preferences API,但首选项 API 似乎没有用,因为配置是用户特定的,而不是应用程序特定的。

4

1 回答 1

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

于 2013-10-30T05:11:26.870 回答