我尝试在我正在处理的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
文件的同一文件夹中。
答案 0 :(得分:2)
正如this answer所述,com/nivis/prop.properties
应该是引用资源文件夹中嵌套文件的正确方法。
但是因为您未使用ClassLoader classloader = Thread.currentThread().getContextClassLoader();
找到Classloader
,您必须使用绝对路径,以" /&#34开头;结果为/com/nivis/prop.properties
。
答案 1 :(得分:0)
try something like this
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("prop.properties");