读取 ini 文件,Ini4j框架的使用

Ini4j 是一款操作文本行的配置文件的工具,网站对如何使用作了介绍 http://ini4j.sourceforge.net/ 。

他实现了可以读取类似 *.ini 文件格式的配置文件。

ini4j的maven pom.xml

 

    <dependency>  
      <groupId>org.ini4j</groupId>  
      <artifactId>ini4j</artifactId>  
      <version>0.5.2</version>  
    </dependency>  

 

配置文件如下:

hello.conf 写道
#############################################
# ini4j example #
#############################################

[system]
program_name=ini4jExample
version=1.0

[person_1]
name=kanpiaoxue_1
age=30
sex=1

[person_2]
name=kanpiaoxue_2
age=31
sex=1

[company]
name=company1
address=beijing

[company]
name=company1
address=beijing

 java代码如下:

Java代码  收藏代码

    import org.apache.commons.lang3.StringUtils;  
    import org.ini4j.Config;  
    import org.ini4j.Ini;  
    import org.ini4j.Profile.Section;  
      
    import com.google.common.io.Resources;  
      
    import java.io.IOException;  
    import java.net.URL;  
    import java.util.Map.Entry;  
    import java.util.Set;  
      
    /** 
     * <pre> 
     * Init4jExample.java 
     * @author kanpiaoxue<br> 
     * @version 1.0 
     * Create Time 2014年7月5日 下午12:43:04<br> 
     * Description : init4j 的使用 
     * </pre> 
     */  
    public class Init4jExample {  
        private static final String CONFIG_NAME = "hello.conf";  
        private static final String SYSTEM = "system";  
        private static final String COMPANY = "company";  
        private static final String PROGRAM_NAME = "program_name";  
        private static final String VERSION = "version";  
        private static final String NAME = "name";  
        private static final String AGE = "age";  
        private static final String SEX = "sex";  
        private static final String ADDRESS = "address";  
      
        /** 
         * <pre> 
         * @param args 
         * </pre> 
         */  
        public static void main(String[] args) {  
      
            Config cfg = new Config();  
            // 生成配置文件的URL  
            URL url = Resources.getResource(CONFIG_NAME);  
            // 设置Section允许出现重复  
            cfg.setMultiSection(true);  
            Ini ini = new Ini();  
            ini.setConfig(cfg);  
            try {  
                // 加载配置文件  
                ini.load(url);  
                System.out.println(StringUtils.center(SYSTEM, 50, '='));  
                // 读取 system  
                Section section = ini.get(SYSTEM);  
                System.out.println(PROGRAM_NAME + " : " + section.get(PROGRAM_NAME));  
                System.out.println(VERSION + " : " + section.get(VERSION));  
      
                // 读取没有规律的person系列  
                System.out.println(StringUtils.center("person", 50, '='));  
                Set<Entry<String, Section>> set = ini.entrySet();  
                for (Entry<String, Section> entry : set) {  
                    String sectionName = entry.getKey();  
                    // 跳过 system 和 company  
                    if (!SYSTEM.equals(sectionName) && !COMPANY.equals(sectionName)) {  
                        System.out.println(NAME + " : " + entry.getValue().get(NAME));  
                        System.out.println(AGE + " : " + entry.getValue().get(AGE));  
                        System.out.println(SEX + " : " + entry.getValue().get(SEX));  
                    }  
                }  
      
                // 读取具有相同 Section 的 company  
                System.out.println(StringUtils.center(COMPANY, 50, '='));  
                for (Section session : ini.getAll(COMPANY)) {  
                    System.out.println(NAME + " : " + session.get(NAME));  
                    System.out.println(ADDRESS + " : " + session.get(ADDRESS));  
                }  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
      
    }  

https://kanpiaoxue.iteye.com/blog/2088549

 

posted @ 2019-07-02 10:50  当当小丸子  阅读(2855)  评论(0编辑  收藏  举报