commos configuration 获得xml,properties 的属性

<jdbc.properties 测试文件>

jdbc.url=com.jdbc.mysql.Driver , oracle.jdbc.driver.OracleDriver
jdbc.username=root
jdbc.password=root
jdbc.int=1
jdbc.double=0.1
jdbc.boolean=true

<rfic.xml 测试文件>

<?xml version="1.0" encoding="UTF-8"?>

<!--xml文件的书写方式不同获取数据的方法不同-->
<rfics>

    <!--示例1-->
    <rfisc>
        <code>18</code>
        <desc>测试数据,测试数据18</desc>
    </rfisc>
    <rfisc>
        <code>19</code>
        <desc>测试数据,测试数据19</desc>
    </rfisc>
    <rfisc>
        <code>20</code>
        <desc>测试数据,测试数据20</desc>
    </rfisc>

    <!--示例2-->
<!--<rfisc code="18" desc="测试数据,测试数据18" />
    <rfisc code="19" desc="测试数据,测试数据19" />
    <rfisc code="20" desc="测试数据,测试数据20" />
    <rfisc code="21" desc="测试数据,测试数据21" />
    <rfisc code="22" desc="测试数据,测试数据22" />
    <rfisc code="23" desc="测试数据,测试数据23" />
    <rfisc code="24" desc="测试数据,测试数据24" />
    <rfisc code="25" desc="测试数据,测试数据25" />
    <rfisc code="26" desc="测试数据,测试数据26" />
    <rfisc code="27" desc="测试数据,测试数据27" />-->

</rfics>

<propManager.java  properties测试类>

package com.*.demo;


import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;

import java.util.ArrayList;
import java.util.List;

/**
 * commons configuration 获取properties属性
 */
public class PropManager {
    public static void main(String[] args) throws ConfigurationException {

       //不指定文件的绝对路径,程序将自动搜索
        //commons.configuration 能帮我们返回properties的一个值得列表
        Configuration config = new PropertiesConfiguration("jdbc.properties");

        //返回list
        System.out.println("#################### 返回list ###############################");
        List<String> urls = config.getList("jdbc.url");
        System.out.println(urls.get(0));
        System.out.println(urls.get(1));
        for (String url : urls){
            System.out.println(url);
        }
        //返回数组
        System.out.println("#################### 返回数组 ###############################");
        String[] configStringArray = config.getStringArray("jdbc.url");
        System.out.println(configStringArray[0]);
        System.out.println(configStringArray[1]);
        for (String str : configStringArray){
            System.out.println(str);
        }

        //返回单条数据
        System.out.println("#################### 返回单条数据 ###########################");
        System.out.println(config.getString("jdbc.username"));

        //返回int数据
        System.out.println("#################### 返回int数据 ############################");
        int configInt = config.getInt("jdbc.int");
        System.out.println(configInt);

        //返回double数据
        System.out.println("#################### 回double数据 ###########################");
        double configDouble = config.getDouble("jdbc.double");
        System.out.println(configDouble);

        //返回boolean数据
        System.out.println("#################### 返回boolean数据 ########################");
        boolean configBoolean = config.getBoolean("jdbc.boolean");
        System.out.println(configBoolean);

        //在返回值为空的情况下设置默认值
        System.out.println("#################### 在返回值在空的情况下设置默认值 ##########");
        String configString = config.getString("jdbc.defult", new String("我是默认值"));
        System.out.println(configString);

        /**
         * java操作的字节码文件,.Java文件被编译后放在一个统一的包里面,我们的xml,properties文件都会在那个包下
         * 有一份,所以我们增加的新属性,只有在那个包下才能看的到。(idea的在out目录下,eclipse的在它的bin目录下)
         */
        System.out.println("#################### 增加配置文件的属性 ######################");
        PropertiesConfiguration configuration = new PropertiesConfiguration("jdbc.properties");
        //增加配置文件的属性
        configuration.setProperty("jdbc.new" , "我是新属性");
        configuration.save();
        System.out.println("添加成功");

    }
}


<xmlManager.java  xml测试类>

package com.*.demo;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;

import java.util.Arrays;
import java.util.List;

/**
 * commons configuration 获取xml属性
 */
public class XmlManager {

    //可以根据(fileName , file , url)configuration自动帮我们查找
    private static XMLConfiguration configuration = null;

    static {
        try {
            configuration = new XMLConfiguration("rfic.xml");  //fileName
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
    }

    //测试
    public static void main(String[] args){
        test1();
        test2();
    }

    /**
     * xml文件示例1
     */
    public static void test1(){
        System.out.println("#################示例1测试#################");
        //获得list
        List oneCodes = configuration.getList("rfisc.code");
        List oneDescs = configuration.getList("rfisc.desc");
        System.out.println(oneCodes);
        System.out.println(oneDescs);
        //获得array
        String[] oneStrCode = configuration.getStringArray("rfisc.code");
        String[] oneStrDesc = configuration.getStringArray("rfisc.desc");
        System.out.println(Arrays.toString(oneStrCode));
        System.out.println(Arrays.toString(oneStrDesc));
        //获得单条数据
        String oneCode = configuration.getString("rfisc(0).code");
        String oneDesc = configuration.getString("rfisc(0).desc");
        System.out.println(oneCode);
        System.out.println(oneDesc);
    }

    /**
     * xml文件示例二
     */
    public static void test2(){
        System.out.println("#################示例2测试#################");
        //获得list
        List twoCodes = configuration.getList("rfisc[@code]");
        List twoDescs = configuration.getList("rfisc[@desc]");
        System.out.println(twoCodes);
        System.out.println(twoDescs);
        //获得array
        String[] twoStrCode = configuration.getStringArray("rfisc[@code]");
        String[] twoStrDesc = configuration.getStringArray("rfisc[@desc]");
        System.out.println(Arrays.toString(twoStrCode));
        System.out.println(Arrays.toString(twoStrDesc));
        //获得单条数据
        String twoCode = configuration.getString("rfisc(0)[@code]");  //数据下标从0开始
        System.out.println(twoCode);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值