Java配置文件读取
Java配置文件读取有各种不同的文件,但是由于打包Jar后的路径改变,往往在项目中能正确读取的配置文件在Jar后变成文件不存在的杯具,下在提出几各不同的配置文件读取方式,仅供参考
一、直接文件读取
File f = new File("you config file path");
FileReader fr = new FileReader(f);
BufferReader br = new BufferReader(fr);
String str = br.readLine();
String para = null;
while(str != null){
//here to get the parameter in the line by key
String para = getPara(key);
return para ;
}
这种方式的好处是配置文件可以自己想要的方式存在,如ini文件,如key = value,或key:value等,只要自己能解释。
但,由于路径的问题,和读取权限,往往往往在项目中能正确读取的配置文件在Jar后变成文件不存在的杯具
二、采用Properties
DataInputStream dis = ClassLoader.getResourceAsStream("your config file path");
Properties p = new Properties() ;
p.load(dis );
//here get the para value by key
getResource(key) ;
这种方法减少了一中取每个属性带来和繁杂过程,但依然无法解决路径变化的问题
三、自动寻找,自动读取
ResourceBundle rb = ResourceBundle.getBundle("your config file name");
//get value of key
rb.getString(key);
这种方式自动寻找配置文件,自动读取属性
三、bean模式
1.利用ClassPathXmlApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext("beanConfig.xml");HelloBean helloBean = (HelloBean)context.getBean("helloBean");System.out.println(helloBean.getHelloWorld());
2.利用FileSystemResource读取
Resource rs = new FileSystemResource("D:/software/tomcat/webapps/springWebDemo/WEB-INF/classes/beanConfig.xml"); BeanFactory factory = new XmlBeanFactory(rs); HelloBean helloBean = (HelloBean)factory.getBean("helloBean"); System.out.println(helloBean.getHelloWorld());
相关文档:
豆豆网 技术应用频道 2009年06月10日 【字号:小中大】 收藏本文
JProfiler memcached JavaCC EclEmma Jester Java加密技术(七)。
ECC
ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。在软件注册 ......
最近在写java测试程序的时候突然遇到了一个问题:java默认包中的public类是不能在其他包中直接调用的
首先,总结一下默认包中类的使用范围,java默认包中的类可以实例化其它包中的public类,但是其它包中的类是不能显式实例化默认包中的类这个特性在JDK1.4以后的版本成立;
& ......
为了做到使得程序具有更高的灵活性,可配置性,在开发中我们经常利用反射来创建一个类的实例,也就是获得一个类的一个对象!通常的做法是通过class.newInstance获得;但这种方法有一个不好的地方,那就是他只能创建无参构造器的对象,如果构造器有参数那它是无能为力的;解决的方法就是 先通过该类的Class获得带有参 ......
Java,感谢你赐与我一辈子的恩典;虽然我多次犯罪得罪了你,但你还是爱我,愿意宽赦我。我感谢你允许我现在来告解;有人赶不上告解就离世了,这是多么的不幸! Java,请帮助我想起我所犯的罪过,并帮助我诚实告明。求你使我认清邪恶帝国的丑陋,并赐给我强大的程序设计能力,使我知道常得罪你是多么忘恩负义的事。 我没有勉 ......
jar -cvf name.jar *.*(打包此目录下所有文件)
jar -cvf name.jar filename(打包此目录下单个文件helloWorld.java或文件夹)
jar -cvf name.jar filename1 filename2....(打包此目录下多个文件或文件夹)
参考: jar ......