我正在尝试使用ClassLoader getResourceAsStream()
我的Direcory结构如下:
Project1
-src
-main
-java
-webapp
-WEB-INF
-MYLOC
-someprops.properties
classloader.getResourceAsStream("MYLOC/someprops.properties")
正常工作。
但是现在我必须将属性文件移到.war之外,就像在C:\someprops.properties
但是,classloader.getResourceAsStream("C:\someprops.properties")
不起作用。
它可以不使用绝对路径吗?
答案 0 :(得分:16)
如果您有本机文件路径,则无需使用getResourceAsStream
,只需以正常方式创建FileInputStream
。
Properties props = new Properties();
FileInputStream in = new FileInputStream("C:\\someprops.properties");
try {
props.load(in);
} finally {
in.close();
}
(如果文件很大,您可能希望将FileInputStream
包装在BufferedInputStream
中
答案 1 :(得分:1)
方法classloader.getResourceAsStream
在类路径中查找资源。如果要使用someprops.properties
加载classloader.getResourceAsStream
文件,请将其添加到类路径中。否则,如果这是属性文件,则始终可以使用Properties.load方法。