Java程序中的配置文件的存放和读取(2)
Java程序并没有类似于VB那种全局对象,但如果我们观察位于上述目录结构中的database.properties文件,应该发现其处于应用程序的 CLASSPATH中,这样,我们就可以使用Java中的类装载器中的相关的方法,读出这些配置文件的信息,该类名为ClassLoader.比如,在上例中,我们可以先得到ConnectinPool的类装载器,然后测定ConnectionPool类所在的包路径,然后利用 ConnectionPool所在的包目录读出database.properties文件的信息,对应的伪代码如下:
ClassLoader loader=ConnectionPool.class.getClassLoader();
得到ConnectionPool所在的包名;
将包名转换为对应的目录名,存入一个名为path的字符串变量中;
调用loader的getResourceAsStream(path+"database.properties"),得到输入流
下面是一个可实际运行的样例代码片段,它可自动测定传入的类所在的包目录,返回传入的属性文件所代表的输入流。它还有一个附加的功能:如果属性文件直接放到了当前类所在的根目录(比如位于JAR文件的根目录或WAR文件的WEB-INF/classes目录中)、系统的用户目录系统、系统其他的类路径中时,它也可以找到;当然,如果还是找不到,它将返回null.具体的代码如下:
public class PropHelper{
/**
*guessPropFile:
*@param cls:和要寻找的属性文件处于相同的包中的任意的类
*@param propFile:要寻找的属性文件名
*/
public static java.io.InputStream guessPropFile(Class cls,String propFile){
try{
//得到类的类装载器
ClassLoader loader=cls.getClassLoader();
//先从当前类所处路径的根目录中寻找属性文件
java.io.InputStream in=loader.getResourceAsStream(propFile);
if(in!=null) return in;
//没有找到,就从该类所处的包目
相关新闻>>
- 发表评论
-
- 最新评论 更多>>