java读取 classpath 资源

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

全部评论

相关推荐

07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务