Java程序中的配置文件的存放和读取 - 编程入门网
ile:要寻 找的属性文件名
*/
public static java.io.InputStream guessPropFile(Class cls,String propFile){
try{
//得到类的类装载器
ding-left: 0px; line-height: 160%; ">ClassLoader loader=cls.getClassLoader();
//先从当前类所处路径的根目录中寻找属性 文件
java.io.InputStream in=loader.getResourceAsStream (propFile);
if(in!=null) return in;
//没有找到,就从该类所处的包 目录中查找属性文件
Package pack=cls.getPackage();
if(pack!=null) {
String packName=pack.getName();
String path="";
if (packName.indexOf(".") < 0 )
path=packName+"/";
else{
int start=0,end=0;
end=packName.indexOf(".");
while(end!=-1) {
path=path+packName.substring(start,end) +"/";
start=end+1;
end=packName.indexOf(".",start);
}
path=path+packName.substring(start)+"/";
}
in=loader.getResourceAsStream(path+propFile);
if(in!=null) return in;
}
//如果没有找到,再从当前系统的用户目录中进行查找
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);}
}
}
"margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px; padding-top: 0px;
padding-right: 0px; padding-bottom: 0px;
padding-left: 0px;
line-height: 160%; ">
Java程序中的配置文件的存放和读取(3)时间:2011-09-09使用举例:利用上述的方法,可在ConnectionPool中自动查找和 ConnectionPool处于同一个包目录中的database.properties的输入流,并利用该 输入流读入对应的属性值的代码如下:
deadcode 写道程序打包成Jar发布后,应该将配置文件放在jar的当前同级目 录,访问调用直接访问,如 java.util.Properties pro = new java.util.Properties(); InputStream inStream = new java.io.FileInputStream ("database.properties");pro.load(inStream); 如果是打包成WAR发布,则放在适合LZ的方法 现在,guessPropFile可以自动在如下位置中寻找属性文件: 在未打包的Java程序的类文件所在的根目录中寻找属性文件 在打包的JAR程序 的根目录中寻找属性文件 在未打包的Java类文件所在的根目录中对应传入参数类 所在的包目录中寻找属性文件 在打包的JAR文件中对应传入参数类所在的包目录 中寻找属性文件 在未打包及打包的WAR文件夹中的WEB-INF/classes目录中寻找属 性文件 在未打包及打包的WAR文件中的WEB-INF/clas |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |