Java-如何讀取配置文件中參數信息


Java中讀取配置文件中參數:

方法一:通過JDK中Properties來實現對配置文件的讀取。

 

  Properties主要用於讀取Java的配置文件,不同的編程語言有自己所支持的配置文件,配置文件中很多變量是經常改變的,為了方便用戶的配置,能讓用戶夠脫離程序本身去修改相關的變量設置。就像在Java中,其配置文件常為.properties文件,是以鍵值對的形式進行參數配置的。

1、配置文件的設置

sysName StefanieSun
sysChinesName=孫燕姿
sysBirthday:1976-07-02
#空格、:、= 三種方式均可表示鍵值對的存在。

2、新建讀取類

public class SystemProperties{
  //設置配置文件路徑
  private final static String urlPath1 = "cn/com/yitong/util/system.properties";
  private final static String urlPath2 = "src/main/java/cn/com/yitong/util/system.properties";   
private fianl static Properties properties = new Properties();

  方法1:使用classLoader來獲取相對目錄下文件(文件必須同SystemProperties同目錄下;路徑見"圖1";此文件地址無需精確至"src/main/java/cn/com/yitong/util/system.properties",因為是同
      SystemProperties同目錄)

  static{
    try{
      InputStream inputStream = ClassLoader.getSystemResourceAsStream(urlPath1);
      properties.load(inputStream);
      //
properties.load(new InputStreamReader(ClassLoader.getSystemResourceAsStream(urlPath), "UTF-8"));方法類似
    }catch(IOExecption e){
      e.printStackTrace();
    }  
  }

  方法2:使用BufferedReader來讀取配置文件。可以讀取任意路徑下的配置文件,並非一定同SystemProperties類同目錄(此方法讀取任意文件下配置文件,故相對路徑為相對路徑下的精確路徑[需要相對精確的路
     徑來確定文件])
  static{
    try{
      BufferedReader bufferedReader = new BufferedReader(new FileReader(urlPath2));
      properties.load(bufferedReader);
    }catch(IOException e ){
      e.printStackTrace();
    }
  }

  
  獲取value值方法:
  
  public static String getValue(String key){
    return properties.getProperty(key).trim();
  }
  
  //通過key獲取值,若值為null則返回defaultValue
  public static String getValue(String key,String defaultValue){
    return properties.getProperty(key,defaultValue);
  }

}

圖1

3、測試類:

public class SystemPropertiesText {

    public static void main(String[] strings) {
      System.err.println(SystemProperties.getValue("sysName")); 
  }
}

方法二:通過ResourceBundle直接讀取並取值

  方法一中讀取配置文件的時候支持多種格式的配置文件(properties,md等),而ResourceBundle只能讀取.properties格式文件。ResourceBundle主要用於獲取文件國際化、本地化(詳細內容請自行搜索了解,此處不過多說明)。

1、配置文件信息同方法一

2、此方法不需要特定的java類來編寫,可直接獲取。

public class SystemPropertiesText{
  public static void main(String[] s){
    String urlPath = "
cn/com/yitong/util/system.properties";
    ResourceBundle resourceBundle
= ResourceBundle.getBundle(urlPath);     
    System.err.println(resourceBundle.getString(
"sysName"));
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM