尝试在java中使用getResourceAsStream时出现问题

时间:2013-08-19 19:50:34

标签: java file-io

所以基本上我的代码中有两行如下:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("resources/config");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));

我在eclipse中的文件结构如下(图片发布):

enter image description here

当我尝试运行此代码时,我到达第二行(BufferedReader行)时会得到NullPointerExceptions。我不能为我的生活找出为什么InputStream“是”变为null。有什么想法吗?

3 个答案:

答案 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");
相关问题