假设读取test.properties配置文件的内容,内容如下:
test.name=xiaoming
test.age=12
一、第一种方式:读取系统内配置文件
/**
* 优缺点:文件必须在resource目录下,若放其他位置则会报NullPointerException
* @param propertiesName 配置文件名,如:test.properties 或 conf/test.properties
* @throws IOException
*/
public Properties readProperties1(String propertiesName) throws IOException {
//读取配置文件
Properties properties = new Properties();
properties.load(new InputStreamReader(PropertiesTest1.class.getClassLoader().getResourceAsStream(propertiesName), StandardCharsets.UTF_8));
return properties;
}
二、第二种方式:读取文件内容(打jar包运行会报错)
/**
* 优缺点:需要配置文件的具体路径,如果配置文件在项目外边,则每次运行路径发生变化,均要指定新的路径
* @param propertiesPath 具体的路径,如:D:\Users\xie\IdeaProjects\smallDemo\conf\test.properties
* 文件在src目录下,也可以使用相对路径,如:./src/main/java/com/demo/test.properties
* @throws IOException
*/
public Properties readProperties2(String propertiesPath) throws IOException {
//读取配置文件
Properties properties = new Properties();
File file = new File(propertiesPath);
FileInputStream fileInputStream = new FileInputStream(file);
properties.load(new InputStreamReader(fileInputStream, StandardCharsets.UTF_8));
return properties;
}
三、第三种方式:读取外部配置文件
public Properties readProperties(String propertiesPath) throws IOException {
Properties properties = new Properties();
//读取配置文件
String filePath = System.getProperty("user.dir") + propertiesPath;
InputStream in = new BufferedInputStream(new FileInputStream(filePath));
properties.load(in);
return properties;
}