快速业务通道

Java程序中的配置文件的存放和读取 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
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的输入流,并利用该 输入流读入对应的属性值的代码如下:

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........ } } 评论

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号