3

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

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

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

但是它不起作用,我拥有所有正确的导入和所有东西,但我无法让它工作......(当我尝试使用 IS 时出现空指针异常)

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

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

在此先感谢您的帮助!

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

4

1 回答 1

4

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

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

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

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

或者

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

假设资源目录被调用res并存在于默认包下

于 2013-10-01T03:58:41.230 回答