从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