Java程序中的配置文件的存放和读取(2)

//如果没有找到,再从当前系统的用户目录中进行查找
java.io.File f=null;
String curDir=System.getProperty("user.dir");
f=new java.io.File(curDir,propFile);
if(f.exists()) return new java.io.FileInputStream(f);

//如果还是没有找到,则从系统所有的类路径中查找
String classpath=System.getProperty("java.class.path");
String[] cps=classpath.split(System.getProperty("path.separator"));

for(int i=0;i < cps.length; i++){
f=new java.io.File(cps[i],propFile);
if(f.exists()) break;
f=null;
}
if(f!=null) return new java.io.FileInputStream(f);
return null;
}catch(Exception e){throw new RuntimeException(e);}

}
}


    使用举例:利用上述的方法,可在ConnectionPool中自动查找和ConnectionPool处于同一个包目录中的database.properties的输入流,并利用该输入流读入对应的属性值的代码如下:

public class ConnectionPool{
//静态初始化器,将在ConnectionPools加载时自动执行
static{
java.util.Properties dbProp=new java.util.Properties();
java.io.InputStream in=PropHelper.guessPropFile(edu.ec.database.ConnectionPool.class,"database.properties");
if(in!=null) dbProp.load(in);
//利用dbProp,为相应的数据源对象设置相关的属性,比如C3P0........
}
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzyzjd.html