2011-06-09 72 views
2

我在同一文件夹conf中加载发出加载属性文件

test.xml and test.properties 

时遇到问题。

我在dist文件夹里面有一个myProject.jar,在conf文件夹里面有一个 test.xml和test.properties。

要加载xml,我使用的是

document = reader.read(new File("../conf/test.xml"));//its working 

但是我在加载属性文件时遇到问题, 我使用的是

Class_name.class.getResourceAsStream("../conf/test.properties"), 

    getResourceAsStream("conf/test.properties"), 
    getResourceAsStream("/test.properties"), 
    getResourceAsStream("test.properties"), 

没有什么能用于属性文件。

任何帮助表示赞赏。

+1

尝试把CONF在classpath中,只是做的getResourceAsStream( “test.properties”) – Todd 2011-06-09 17:02:38

+1

同意;你需要决定你想如何定位文件。您正在使用的File构造函数是基于当前工作目录的文件系统的完整路径名或相对路径名。 #getResourceAsStream将在类路径中找到一个文件 - 正如Todd所说的,您需要在类路径中包含'conf'目录才能访问它。根据你想装运jar的方式(带或不带配置属性文件)应该给你一些提示,以便选择。 – 2011-06-09 17:12:14

回答

6

你为什么不把文件并使用FileInputStream

Properties properties = new Properties(); 
properties.load(new FileInputStream(fileName)); 

上面的代码将采取属性文件,并将其加载到属性对象加载它。

2

区分Class.getResourceAsStream(...)ClassLoader.getResouceAsStream(...)是很重要的。来自Class的呼叫是相对路径。所以,我想下面将工作:

Foo.class.getResourceAsStream("/conf/test.properties"), 

...提供conf/父在类路径中。

如果这不起作用,请查看在您的环境中如何设置类加载器。您需要从包含conf目录的类加载器进行查找。

1

记住XML/..what所以以往文件应该被封装的本根目录属性

例如:com.abce.configuration ---> readfile.java

xyz.xml COM - > ABCD - >配置 - > readfile.java