Java使用commons-configuration读取配置文件

pom.xml

<dependencies>
   <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.10</version>
    </dependency>
</dependencies>

test.ini

; default config

[DEFAULT]

admin_http_listen = 127.0.0.1:80

admin_https_listen = 127.0.0.1:443

test.properties

A = one
B = two
C = three,four
D = True

读取properties配置文件

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

import java.util.List;

/**
 * @author xxx
 */
public class PropertiesFile {
    /**
     * 配置文件存放路径及文件名称
     */
    private String propertiesFilePath;
    private PropertiesConfiguration cfg = null;

    public PropertiesFile(String propertiesFilePath) {
        try {
            this.propertiesFilePath = propertiesFilePath;
            cfg = new PropertiesConfiguration(propertiesFilePath);
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
        // 当文件的内容发生改变时,配置对象也会刷新
        cfg.setReloadingStrategy(new FileChangedReloadingStrategy());
    }

    public void setPropertiesFilePath(String propertiesFilePath) {
        this.propertiesFilePath = propertiesFilePath;
    }

    /**
     * 读取properties文件返回一个String类型的结果,如果是一组数据,例A = 1,2使用此方法get后将之会返回1
     * @param key 需要查找的key
     * @return String类型的查找结果
     */
    public String getStringValue(String key) {
        return cfg.getString(key);
    }

    /**
     * 读取properties文件返回一个Int类型的结果,如果是一组数据,例A = 1,2使用此方法get后将之会返回1
     * @param key 需要查找的key
     * @return Int类型的查找结果
     */
    public int getIntValue(String key) {
        return cfg.getInt(key);
    }

    /**
     * 读取properties文件返回一个Boolean类型的结果
     * @param key 需要查找的key
     * @return Boolean类型的查找结果
     */
    public boolean getBooleanValue(String key) {
        return cfg.getBoolean(key);
    }

    /**
     * 读取properties文件返回一个结果List
     * @param key 需要查找的key
     * @return List结果
     */
    public List<?> getListValue(String key) {
        return cfg.getList(key);
    }

    /**
     * 读取properties文件返回一个结果数组
     * @param key 需要查找的key
     * @return 数组结果
     */
    public String[] getArrayValue(String key) {
        return cfg.getStringArray(key);
    }

    public static void main(String[] args) {
        PropertiesFile propertiesFile = new PropertiesFile("config/test.properties");
        System.out.println(propertiesFile.getListValue("C"));
    }
}

读取ini文件

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalINIConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;

import java.util.List;

/**
 * @author xxx
 */
public class INIFile {

    /**
     * 配置文件存放路径及文件名称
     */
    private String iniFilePath;
    private HierarchicalINIConfiguration cfg = null;

    public INIFile(String iniFilePath) {
        try {
            this.iniFilePath = iniFilePath;
            cfg = new HierarchicalINIConfiguration(iniFilePath);
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
        // 当文件的内容发生改变时,配置对象也会刷新
        cfg.setReloadingStrategy(new FileChangedReloadingStrategy());
    }

    public void setIniFilePath(String iniFilePath) {
        this.iniFilePath = iniFilePath;
    }

    /**
     * 读取ini文件返回一个String类型的结果,如果是一组数据,例A = 1,2使用此方法get后将之会返回1
     * @param key 需要查找的key
     * @return String类型的查找结果
     */
    public String getStringValue(String key) {
        return cfg.getString(key);
    }

    /**
     * 读取ini文件返回一个Int类型的结果,如果是一组数据,例A = 1,2使用此方法get后将之会返回1
     * @param key 需要查找的key
     * @return Int类型的查找结果
     */
    public int getIntValue(String key) {
        return cfg.getInt(key);
    }

    /**
     * 读取ini文件返回一个Boolean类型的结果
     * @param key 需要查找的key
     * @return Boolean类型的查找结果
     */
    public boolean getBooleanValue(String key) {
        return cfg.getBoolean(key);
    }

    /**
     * 读取ini文件返回一个结果List
     * @param key 需要查找的key
     * @return List结果
     */
    public List<?> getListValue(String key) {
        return cfg.getList(key);
    }

    /**
     * 读取ini文件返回一个结果数组
     * @param key 需要查找的key
     * @return 数组结果
     */
    public String[] getArrayValue(String key) {
        return cfg.getStringArray(key);
    }

    public static void main(String[] args) {
        INIFile iniFile = new INIFile("config/test.ini");
        System.out.println(iniFile.getStringValue("DEFAULT.admin_http_listen"));
    }
}
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:设计师小姐姐 返回首页