我的eclipse项目中有以下结构:
我想使用方法 FileInputStream 访问 lito.properties 文件。
在互联网上搜索,我找到了这个解决方案:
FileInputStream file = (FileInputStream) this.getClass().getResourceAsStream("/files/lito.properties");
这似乎是最好的方法,但如果我在静态方法中工作怎么办? 它总是会出现这个错误:
不能在静态上下文中使用它
那么,在静态上下文中访问此文件需要做些什么?
答案 0 :(得分:1)
将this.getClass()
替换为您的班级名称和class
:
FileInputStream file = (FileInputStream)
YourClass.class.getResourceAsStream("/files/lito.properties");
此外,尝试将所有资源文件放在正确的 resources 文件夹中,而不是放在java src文件夹中。这是因为像maven这样的编译器将忽略来自源的任何非.java文件。
答案 1 :(得分:1)
只需将您的文件直接放在您的项目文件夹中,就像src文件夹中的lvl一样,不要在其中,并且访问如下:
FileInputStream file = new FileInputStream("lito.properties");
或者,如果您想在子文件夹中将其添加到根项目文件夹,则将文件放入其中。例如:
MyProject-> Data-用> lito.properties
FileInputStream file = new FileInputStream("Data/lito.properties");