使用ClassLoader的绝对路径getResourceAsStream()

时间:2013-11-21 16:48:35

标签: java classpath classloader absolute-path

我正在尝试使用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")不起作用。 它可以不使用绝对路径吗?

2 个答案:

答案 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方法。