我有一个Java编程问题,我想要一些帮助!
我将我的类文件放在一个单独的包中(不是默认包)。我试图从我的res文件夹中访问一个文件。我已将其添加为类文件夹(使用属性 - > libraries - >添加类文件夹)在我的课程中,我有以下代码:
InputStream IS = getClass().getResourceAsStream("mytextfile.txt");
然而它不起作用,我有所有正确的导入和一切,但我只是无法让它工作...(当我尝试使用IS时给出空指针异常)
我认为它与使用单独的软件包有关,因为我有另一个使用默认软件包的程序,它工作正常......
我想要一种方法,我可以在使用Eclipse时以及将其导出为.jar时访问该文件。
提前感谢您的帮助!
编辑:我尝试过使用/res/mytextfile.txt,但这也不起作用......答案 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
,并且存在于默认包