2013-10-30 33 views
0

我想创建一个默认的java属性文件,但所有我看到的例子是读取到已存在的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 API的.properties以及java的首API看了,但喜好API似乎并不实用,因为配置是特定的用户,而不是专用的。

回答

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

+0

@RyanTheLeach这意味着**已经**存在? –

+0

@RyanTheLeach Look更新信息。 –

+0

对不起,让我重新评论这条评论。 如何检查文件是否已经存在,如问题的第3点。 –

相关问题