commons-configuration使用范例

本文介绍了如何使用Java读取和写入不同类型的配置文件,包括属性文件(.properties)、XML文件以及环境和系统变量。演示了配置文件的加载、查询、修改及自动重载等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、访问属性文件

PropertiesConfiguration config1 = new PropertiesConfiguration("config.properties");
System.out.println(config1.getString("ip"));
System.out.println(config1.getInt("port"));
System.out.println(config1.getStringArray("keys")); //字符串数组,默认逗号分隔
System.out.println(config1.getList("keys")); //List,默认逗号分隔

config1.setProperty("port", "8088"); //修改属性值
config1.save(); //保存文件
System.out.println(config1.getInt("port"));

 属性文件内容如下:

ip=127.0.0.1
port=8080
keys=k1,k2,k3,k4,k5,中文

 

2、访问xml文件

XMLConfiguration config2 = new XMLConfiguration("config.xml");
config2.setExpressionEngine(new XPathExpressionEngine()); //使用XPath表达式语言

//自动重新加载
FileChangedReloadingStrategy strategy = new FileChangedReloadingStrategy();
strategy.setRefreshDelay(5000); //每隔5000毫秒检查配置文件是否有修改,有则自动重新加载
config2.setReloadingStrategy(strategy);

System.out.println(config2.getString("ip"));
System.out.println(config2.getString("address/city"));
System.out.println(config2.getString("databases/database[name='dev']/url"));

 xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configs>
	<ip>192.168.245.222</ip>
	<port>8080</port>
	<address>
		<province>GuangDong</province>
		<city>LuoDing</city>
	</address>
	<databases>
        <database>
            <name>dev</name>
            <url>127.0.0.1</url>
            <port>1521</port>
            <login>admin</login>
            <password>pass</password>
        </database>
        <database>
            <name>product</name>
            <url>192.168.124.11</url>
            <port>1521</port>
            <login>admin</login>
            <password>123456</password>
        </database>
    </databases>
</configs>

 

3、访问环境变量

EnvironmentConfiguration config3 = new EnvironmentConfiguration();
for(Iterator it=config3.getKeys(); it.hasNext(); ){
	String key = (String)it.next();
	System.out.println(key + "=" + config3.getString(key));
}

 

4、访问系统变量

SystemConfiguration config4 = new SystemConfiguration();
for(Iterator it=config4.getKeys(); it.hasNext(); ){
	String key = (String)it.next();
	System.out.println(key + "=" + config4.getString(key));
}

 

5、组合各种配置

CompositeConfiguration config5 = new CompositeConfiguration();
config5.addConfiguration(new EnvironmentConfiguration());
config5.addConfiguration(new SystemConfiguration());
config5.addConfiguration(new XMLConfiguration("config.xml"));
config5.addConfiguration(new PropertiesConfiguration("config.properties"));
System.out.println(config5.getString("JAVA_HOME"));
System.out.println(config5.getString("user.home"));
System.out.println(config5.getString("address.province"));
System.out.println(config5.getList("keys"));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值