如何在 JSF 应用程序中加载属性文件?
How to load properties file in a JSF application?
我正在尝试在我正在处理的 JSF
应用程序中加载 properties
文件,但我无法引用该文件。
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
文件的同一文件夹中。
try something like this
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("prop.properties");
如 this answer 所述,com/nivis/prop.properties
应该 是引用资源文件夹中嵌套文件的正确方法。
但是因为您没有使用 ClassLoader classloader = Thread.currentThread().getContextClassLoader();
来定位 Classloader
,您必须使用以“/”开头的绝对路径 导致 /com/nivis/prop.properties
。
我正在尝试在我正在处理的 JSF
应用程序中加载 properties
文件,但我无法引用该文件。
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
文件的同一文件夹中。
try something like this
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("prop.properties");
如 this answer 所述,com/nivis/prop.properties
应该 是引用资源文件夹中嵌套文件的正确方法。
但是因为您没有使用 ClassLoader classloader = Thread.currentThread().getContextClassLoader();
来定位 Classloader
,您必须使用以“/”开头的绝对路径 导致 /com/nivis/prop.properties
。