如何从 Java EE Web 应用程序访问属性文件?

2022-09-03 18:24:03

我在Eclipse中创建了一个动态Web项目。我在src目录中创建了一个属性文件:

<project-root>/src/props.properties

我正在调试模式下通过Eclipse启动Tomcat。现在我想从我的一个POJO中读取属性文件,但我得到了一个FileNotFoundException。当前路径似乎是 Eclipse 路径。

我在网上寻找解决方案,但没有一个对我有用。也许我做错了什么。代码是这样的:

File file = new File("props.properties");
FileReader reader = new FileReader(file);
properties.load(reader);

我应该如何访问属性文件?它应该位于哪里?

提前致谢。


答案 1

如果它是一个Web应用程序,那么属性将被部署到WEB-INF/类,并且可以使用类装入器装入

InputStream in = {NameOfClassWhereThisisInvoked}.class.getResourceAsStream("/props.properties");
properties.load(in);
in.close();

实际上,无论它是否是Web应用程序,都应该有效。

我假设src被定义为源文件夹


答案 2

还有另一种方法可以做到这一点,如下所示:

File file = new File(session.getServletContext().getRealPath("/") + "props.properties");

您可以提供相对于 eclipse Web 应用程序项目的“WebContent”文件夹的任何路径,而不是“props.properties”。