commons-configuration.jar读取资源文件

Apache Commons-configuration 学习笔记
1 如果要使用configuration这个包,首先要保证使用JDK1.2以上,还要引入如下jar包
  • commons-beanutils
  • commons-lang
  • commons-logging
  • commons-collections
  • commons-digester
  • commons-codec
  • commons-jxpath

2 commons-configuration最新的版本是1.5,最主要的作用是读取资源文件,每一种文件格式都有一个对应的类,如下
  • properties文件--PropertiesConfiguration类
  • xml文件--XMLConfiguration
  • .ini文件--INIConfiguration
  • .plist文件--PropertyListConfiguration
  • 还可以从JNDI中读取properties--JNDIConfiguration
  • 当然还可以使用system的properties--SystemConfiguration
  • 等等...

3 上面已经对它做了基本的介绍,下面看看这个包怎么用吧
比如我们要读一个properties文件:在classpath下面建立目录te,之后在te下面建立
test.properties
Java代码  收藏代码
  1. ip=127.0.0.1  
  2. port=8080  
  3. id=111  
  4. application.name = Killer App  
  5. application.version = 1.6.2  
  6. application.title = ${application.name} ${application.version}  
  7. keys=cn,com,org,uk,edu,jp,hk  

java:
Java代码  收藏代码
  1. //注意路径默认指向的是classpath的根目录  
  2. Configuration config = new PropertiesConfiguration("te/test.properties");  
  3. String ip=config.getString("ip");  
  4. int port=config.getInt("port");  
  5. String title=config.getString("application.title");  
  6. //再举个Configuration的比较实用的方法吧,在读取配置文件的时候有可能这个键值对应的值为空,那么在下面这个方法中  
  7. //你就可以为它设置默认值。比如下面这个例子就会在test.properties这个文件中找id的值,如果找不到就会给id设置值为123  
  8. //这样就保证了java的包装类不会返回空值。虽然功能很简单,但是很方便很实用。  
  9. Integer id=config.getInteger("id"new Integer(123));  
  10. //如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk  
  11. //可以实用下面的方式读取:  
  12. String[] keys1=config.getStringArray("keys");  
  13.     List keys2=config.getList("keys");  
首先要把这个文件读到程序中,我们可以用上面的类,所有的读取文件的类都 继承自AbstractConfiguration类,
而这个类实现了Configuration接口,如果我们只有比较简单的需求,那么可以直接向上转型为Configuration类型,如果向上
转型为AbstractConfiguration类,那么可以做一些配置工作。
比如刚刚看到的 keys=cn,com,org,uk,edu,jp,hk这个例子中如果是keys=cn/com/org/uk/edu/jp/hk
那么如果还按照原来的方式读取,读到的将是"cn/com/org/uk/edu/jp/hk"这个字符串,所以要先改变分割符之后在读

Java代码  收藏代码
  1. AbstractConfiguration.setDefaultListDelimiter('/');  
  2. Configuration config = new PropertiesConfiguration("te/Vasp.properties");  
  3. String[] keys=config.getStringArray("keys");  
  4. List key2=config.getList("keys");  
如果你看它的源码,你会在 AbstractConfiguration这个类中找到:
Java代码  收藏代码
  1. private static char defaultListDelimiter = ','

====================================================================================================================

Demo two

必须包:
commons-configuration-1.5.jar
commons-lang-2.3.jar
commons-collections-3.2.jar
commons-logging-1.1.1.jar
作用:1)提供统一管理各种配置文件的读写API
      2)简化了读写流程
  3)提供获取数据基本类型自动强转
基本使用:
    操作properties文件
//读取
Configuration configuration = new PropertiesConfiguration("config.properties");
String name = configuration.getString("config.name");
int age = configuration.getInt("config.age");
//获取逗号分割的列表
String[] fireds = configuration.getStringArray("config.firends");  //config.firends = liguang,xuwenjian用逗号分割
//保存
PropertiesConfiguration configuration = new PropertiesConfiguration("config.properties"); //要使用类PropertiesConfiguration
configuration.setProperty("config.city", "nanjing");
configuration.save();
//保存到指定文件中
    configuration.save("configbak.properties");
操作xml文件
<?xml version="1.0" encoding="ISO-8859-1" ?>
<gui-definition>
  <colors>
<background>#808080</background>
<text>#000000</text>
<header>#008000</header>
<link normal="#000080" visited="#800080"/>
<default>${colors.header}</default>
  </colors>
  <rowsPerPage>15</rowsPerPage>
  <buttons>
<name>OK,Cancel,Help</name>
  </buttons>
  <numberFormat pattern="###\,###.##"/>
</gui-definition>

XMLConfiguration config = new XMLConfiguration("tables.xml");
//获取节点值  路径中不包括根节点名
String backColor = config.getString("colors.background");
//获取节点属性值
String linkNormal = config.getString("colors.link[@normal]");
//获取列表
List buttons = config.getList("buttons.name");
//获取逗号分割的列表
String[] fireds = config.getStringArray("config.firends");  //config.firends = liguang,xuwenjian用逗号分割
//tables.table(1).fields.field(2).name 从0开始计数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行参数,选项,选项组,强制选项等的简单API. Codec Codec 包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder. Collections Commons-Collections 提供一个类包来扩展和增加标准的 Java Collection框架 Configuration Commons-Configuration 工具对各种各式的配置和参考文件提供读取帮助. Daemon 一种 unix-daemon-like java 代码的替代机制 DBCP Commons-DBCP 提供数据库连接池服务 DbUtils DbUtils 是一个 JDBC helper 类库,完成数据库任务的简单的源清除代码. Digester Commons-Digester 是一个 XML-Java对象的映射工具,用于解析 XML配置文件. Discovery Commons-Discovery 提供工具来定位源 (包括类) ,通过使用各种模式来映射服务/引用名称和源名称。. EL Commons-EL 提供在JSP2.0规范中定义的EL表达式的解释器. FileUpload FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 HttpClient Commons-HttpClient 提供了可以工作于HTTP协议客户端的一个框架. IO IO 是一个 I/O 工具集 Jelly Jelly是一个基于 XML 的脚本和处理引擎。 Jelly 借鉴了 JSP 定指标签,Velocity, Cocoon和Xdoclet中的脚本引擎的许多优点。Jelly 可以用在命令行, Ant 或者 Servlet之中。 Jexl Jexl是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。. JXPath Commons-JXPath 提供了使用Xpath语法操纵符合Java类命名规范的 JavaBeans的工具。也支持 maps, DOM 和其他对象模型。. Lang Commons-Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能 Latka Commons-Latka 是一个HTTP 功能测试包,用于自动化的QA,验收和衰减测试. Launcher Launcher 组件是一个交叉平台的Java 应用载入器。 Commons-launcher 消除了需要批处理或者Shell脚本来载入Java 类。.原始的 Java 类来自于Jakarta Tomcat 4.0 项目 Logging Commons-Logging 是一个各种 logging API实现的包裹类. Math Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题. Modeler Commons-Modeler 提供了建模兼容JMX规范的 Mbean的机制. Net Net 是一个网络工具集,基于 NetComponents 代码,包括 FTP 客户端等等。 Pool Commons-Pool 提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实现. Primitives Commons-Primitives提供了一个更小,更快和更易使用的对Java基本类型的支持。当前主要是针对基本类型的 collection。. Validator The commons-validator提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则。支持校验规则的和错误消息的国际化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值