代码
public static void main(String[] args) {
Properties properties = new Properties();
System.out.println(getClass().getResource("").getPath());
System.out.println(this.getClass().getResource("").getPath());
System.out.println(this.getClass().getClassLoader().getResource("").getPath());
}
输出
/home/codedancing/Project/IDEA_WorkSpace/Test/target/classes/com/codedancing/maven/dao/
/home/codedancing/Project/IDEA_WorkSpace/Test/target/classes/com/codedancing/maven/dao/
/home/codedancing/Project/IDEA_WorkSpace/Test/target/classes/
结论
从当前包下加载指定名称的文件
getClass().getResourceAsStream("config.properties");
this.getClass().getResourceAsStream("config.properties");
从 classpath 根目录下加载指定名称的文件
this.getClass().getClassLoader().getResourceAsStream("config.properties");
实例
编译后的目录结构:
package com.codedancing.maven.dao;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Dao {
private String db;
private String info;
public void getProperties() {
Properties properties = new Properties();
try (
InputStream in1 = this.getClass().getClassLoader().getResourceAsStream("db.properties");
InputStream in2 = this.getClass().getResourceAsStream("info.properties")
) {
properties.load(in1);
db = properties.getProperty("db");
System.out.println("db.properties内容获取成功:db=" + db);
properties.load(in2);
info = properties.getProperty("info");
System.out.println("info.properties内容获取成功:info=" + info);
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.codedancing.maven.dao;
public class DaoTest {
public static void main(String[] args) {
Dao dao = new Dao();
dao.getProperties();
}
}
============== 输出 ===============
db.properties内容获取成功:db=mysql5.6
Exception in thread "main" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at com.codedancing.maven.dao.Dao.getProperties(Dao.java:23)
at com.codedancing.maven.dao.DaoTest.main(DaoTest.java:7)
》》》info.properties文件并未找到,抛出空指针异常《《《