所以基本上我的代码中有两行如下:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("resources/config");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
我在eclipse中的文件结构如下(图片发布):
当我尝试运行此代码时,我到达第二行(BufferedReader行)时会得到NullPointerExceptions。我不能为我的生活找出为什么InputStream“是”变为null。有什么想法吗?
答案 0 :(得分:4)
当您使用类加载器加载流时,您使用的路径始终是绝对路径(因此不应在这种情况下使用前导/
)并且应该从你的root包开始。在您的情况下,这是在src
。
因此,由于您的资源位于包qbooksprintfix/resources
下,因此您应该像以下一样访问它:
getResourceAsStream("qbooksprintfix/resources/config")
答案 1 :(得分:0)
getResourceAsStream()
查看项目的类路径,因此在您的情况下,它的“base”目录可能是src
:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("qbooksprintfix/resources/config");
答案 2 :(得分:0)
那应该是
getResourceAsStream("qbooksprintfix/resources/config");
或者最好
Thread.currentThread().getContextClassLoader().getResourceAsStream("qbooksprintfix/resources/config");