【发布时间】:2016-01-31 20:03:53
【问题描述】:
我正在尝试将properties 文件加载到我正在开发的JSF 应用程序中,但我无法引用该文件。
package com.nivis.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropHandler {
String result = "";
InputStream inputStream;
public void loadProp() {
try {
inputStream = this.getClass().getResourceAsStream("prop.properties");
if (inputStream == null) {
System.err.println("===== Did not load =====");
} else {
System.err.println("===== Loaded =====");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
PropHandler ph = new PropHandler();
ph.loadProp();
}
}
该文件位于同一个包中,并且在我搜索此文件时发现的不同示例中,应该可以。我还尝试将文件放在应用程序的每个可能的位置,并尽我所知引用它,但它不起作用。
(只有一些我测试过的文件夹)
我做错了什么?
最好将它放在用于msg.properties 文件的同一文件夹中。
【问题讨论】:
-
你试过
getClass().getResourceAsStream("com/nivis/prop.properties");吗? -
@Zhedar:是的,它不起作用。
-
现在我尝试使用
/com/nivis/prop.properties,它确实有效。奇怪,我以为我已经尝试过那个特定的组合...看看我是否可以使用与msg.properties文件相同的文件夹来让它工作。 -
在 JSF 中使用
ExternalContext#getResourceAsStream(String path)并更好地将属性文件移动到WEB-INF,因为它是一个 Web 资源。
标签: jsf jsf-2.2 properties-file