根据廖雪峰老师的这个步骤 https://www.liaoxuefeng.com/wiki/1252599548343744/1298366384308257#0
在进行到下面这一步的时候,input为null
try (InputStream input = getClass().getResourceAsStream("/default.properties")) {
if (input != null) {
// TODO:
}
}
于是在本机IDEA上测试,如下代码:
System.out.println(JZ3.class.getResource(""));
System.out.println(JZ3.class.getResource("/"));
System.out.println(JZ3.class.getResource("/default.properties"));
System.out.println(JZ3.class.getResource("default.properties"));
输出:
file:/D:/CodeLab/Java/Alg/leetCode/out/production/leetCode/niuke/
file:/D:/CodeLab/Java/Alg/leetCode/out/production/leetCode/
null
null
目录结构如下:
所以第3,4条测试代码为什么为null呢?
原来很简单,
-
default.properties如果是空文件的话,那也是返回null的
-
根目录应该为src下,而不是src之外,前缀“/”表示根目录,如“/new.txt”