2013-10-30 55 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點。 –

相關問題