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
posted @ 2022-04-14 18:47  Albert-ZZD  阅读(457)  评论(0)    收藏  举报