根据廖雪峰老师的这个步骤 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

目录结构如下:

alt

所以第3,4条测试代码为什么为null呢?

原来很简单,

  1. default.properties如果是空文件的话,那也是返回null的

  2. 根目录应该为src下,而不是src之外,前缀“/”表示根目录,如“/new.txt”