无法访问res文件夹?

时间:2013-10-01 03:55:10

标签: java eclipse file inputstream

我有一个Java编程问题,我想要一些帮助!

我将我的类文件放在一个单独的包中(不是默认包)。我试图从我的res文件夹中访问一个文件。我已将其添加为类文件夹(使用属性 - > libraries - >添加类文件夹)在我的课程中,我有以下代码:

InputStream IS = getClass().getResourceAsStream("mytextfile.txt");

然而它不起作用,我有所有正确的导入和一切,但我只是无法让它工作...(当我尝试使用IS时给出空指针异常)

我认为它与使用单独的软件包有关,因为我有另一个使用默认软件包的程序,它工作正常......

我想要一种方法,我可以在使用Eclipse时以及将其导出为.jar时访问该文件。

提前感谢您的帮助!

编辑:我尝试过使用/res/mytextfile.txt,但这也不起作用......

1 个答案:

答案 0 :(得分:4)

getClass().getResource将查找相对于该类所在位置的命名资源。

因此,如果该类存在于包foo.bar中,getResource将查找foo/bar/mytextfile.txt(为类添加前缀,类加载器的类路径上下文...)

相反,请尝试使用相对路径,例如

InputStream IS = getClass().getResourceAsStream("/mytextfile.txt");

InputStream IS = getClass().getResourceAsStream("/res/mytextfile.txt");

假设资源目录名为res,并且存在于默认包