使用Java在Eclipse中正确读取资源
我尝试加载此处的属性文件
<project>/resource/text/translation_en.properties
使用以下代码(在静态上下文中,目前没有从我初始化任何对象):
<This_Classes_name>.class.getResourceAsStream("/resource/text/translation_en.properties");
为什么我要这样加载它?首先我使用类对象,因为getResourceAsStream()不是静态的,我通过谷歌搜索了解到我应该使用这个方法来加载我的属性文件。然后,我使用了一个/Java,它看起来与我的Main不相关。java,但是这个项目。尽管如此,我仍然使用它得到null
如果在那个确切的地方有一个文件,这怎么可能不起作用呢?Java在这里做什么
# 1 楼答案
使用getResourceAsStream是因为它可以读取整个类路径中的文件(包括类路径中JAR中的文件)
我认为该方法将文件名作为参数,没有任何路径,在您的示例中,类加载器将查找名为“/resource/text/translation_en.properties”的文件,而不是将第一部分解释为路径。 尝试这样加载:
此外,您还必须确保文件实际位于类路径中。对于maven和eclipse,应该有一个文件夹“target”,其中包含所有生成的类。当项目在eclipse中运行时,这个文件夹会被添加到类路径中
希望这有帮助
# 2 楼答案
资源需要在类路径中。一个选项是将整个/resource文件夹复制到源文件夹中。另一个选项是创建一个只包含资源的新源文件夹,并将/resource文件夹移到那里。不要将/resource文件夹设为源文件夹,除非您想使用
getResourceAsStream("/text/translation_en.properties");