如何在静态上下文中访问文件?

时间:2014-10-10 17:38:03

标签: java eclipse file

我的eclipse项目中有以下结构:

enter image description here

我想使用方法 FileInputStream 访问 lito.properties 文件。

在互联网上搜索,我找到了这个解决方案:

FileInputStream file = (FileInputStream) this.getClass().getResourceAsStream("/files/lito.properties");

这似乎是最好的方法,但如果我在静态方法中工作怎么办? 它总是会出现这个错误:

  

不能在静态上下文中使用它

那么,在静态上下文中访问此文件需要做些什么?

2 个答案:

答案 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");