1. 程式人生 > 其它 >Properties配置檔案載入的三種方式

Properties配置檔案載入的三種方式

載入配置檔案的三種方式

\\配置檔案 config.properties
className=com.it.Democlass
package com.it.demo;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.ResourceBundle;

public class ClassLoaderWithConfig {
    public static void main(String[] args) throws Exception {
        method1();
        method2();
        method3();
    }



//方式一
    private static void method1() throws IOException {
        //獲取屬性集物件
        Properties p = new Properties();
        //獲取輸入流
        //FileInputStream相對路徑相對的是專案根目錄,否則報錯,找不到檔案路徑
        FileInputStream fis = new FileInputStream("src\\config.properties");
        //載入配置檔案
        p.load(fis);
        //獲取對應值
        String s = p.getProperty("className");
        System.out.println("s = " + s);
    }
}


//方式二
    private static void method2() {
        //使用ResourceBundle直接呼叫,不用加檔案字尾名(隱含為.properties)
        ResourceBundle bundle = ResourceBundle.getBundle("config");
        //獲取對應值
        String s = bundle.getString("className");
        System.out.println("s = " + s);
    }
    
    
   
   
   //方式三
    private static void method3() throws IOException {
        //獲取屬性集物件
        Properties p = new Properties();
        //使用類載入獲取配置檔案
        p.load(ClassLoaderWithConfig.class.getClassLoader().getResourceAsStream("config.properties"));
        //獲取對應值
        String s = p.getProperty("className");
        System.out.println("s = " + s);
    }

    
    

小結

  • 檔案路徑區別

    • 方式一配置檔案的相對路徑為專案根目錄,如果檔案在src目錄下則為src\\config.properties,如果在專案根路徑下為config.properties
    • 方式二配置檔案路徑須放在src目錄下,否則報錯java.util.MissingResourceException: Can't find bundle for base name config, locale zh_CN,且傳入的引數不能帶字尾名.properties
    • 方式三配置檔案路徑須放在src目錄下,否則報錯java.lang.NullPointerException
  • 檔案型別區別

    • 方式一和三檔案型別可以是其他型別,如config.ini
    • 方式二檔案型別必須為.properties