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
- 方式一和三文件类型可以是其他类型,如
浙公网安备 33010602011771号