从Java包中加载属性文件

我需要读取埋在我的包结构中的属性文件com.al.common.email.templates

我已经尝试了一切,但无法解决。

最后,我的代码将在servlet容器中运行,但是我不想依赖任何容器。我写了JUnit测试用例,它需要在两个方面都能工作。

回答:

从包中的类加载属性时,com.al.common.email.templates可以使用

Properties prop = new Properties();

InputStream in = getClass().getResourceAsStream("foo.properties");

prop.load(in);

in.close();

(添加所有必要的异常处理)。

如果你的类不在该程序包中,则需要稍微不同地获取InputStream:

InputStream in = 

getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");

相对路径(那些没有前导“/”)中getResource()/ getResourceAsStream()该资源将相对于它表示包的类是在目录中搜索平均值。

使用java.lang.String.class.getResource("foo.txt")/java/lang/String/foo.txt在类路径上搜索(不存在的)文件。

使用绝对路径(以’/’开头的绝对路径)表示当前软件包将被忽略。

以上是 从Java包中加载属性文件 的全部内容, 来源链接: utcz.com/qa/410522.html

回到顶部