标签:trim 情况 keyword exception rac oid div index contain
软件151 陶涛
读取ini的配置的格式如下:
| 1 2 3 4 5 6 7 | [section1]key1=value1[section2]key2=value2。。。。 | 
其中可能一个Key对应多个value的情况。
代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;/** * 类名:读取配置类<br> * @author Phonnie * */publicclassConfigReader {        /**     * 整个ini的引用     */    privateMap<String,Map<String, List<String>>>  map = null;    /**     * 当前Section的引用     */    privateString currentSection = null;        /**     * 读取     * @param path     */    publicConfigReader(String path) {        map = newHashMap<String, Map<String,List<String>>>();        try{            BufferedReader reader = newBufferedReader(newFileReader(path));            read(reader);        } catch(IOException e) {            e.printStackTrace();            thrownewRuntimeException("IO Exception:"+ e);        }            }    /**     * 读取文件     * @param reader     * @throws IOException     */    privatevoidread(BufferedReader reader) throwsIOException {        String line = null;        while((line=reader.readLine())!=null) {            parseLine(line);        }    }        /**     * 转换     * @param line     */    privatevoidparseLine(String line) {        line = line.trim();        // 此部分为注释        if(line.matches("^\\#.*$")) {            return;        }elseif(line.matches("^\\[\\S+\\]$")) {            // section            String section = line.replaceFirst("^\\[(\\S+)\\]$","$1");            addSection(map,section);        }elseif(line.matches("^\\S+=.*$")) {            // key ,value            inti = line.indexOf("=");            String key = line.substring(0, i).trim();            String value =line.substring(i + 1).trim();            addKeyValue(map,currentSection,key,value);        }    }    /**     * 增加新的Key和Value     * @param map     * @param currentSection     * @param key     * @param value     */    privatevoidaddKeyValue(Map<String, Map<String, List<String>>> map,            String currentSection,String key, String value) {        if(!map.containsKey(currentSection)) {            return;        }                Map<String, List<String>> childMap = map.get(currentSection);                if(!childMap.containsKey(key)) {            List<String> list = newArrayList<String>();            list.add(value);            childMap.put(key, list);        } else{            childMap.get(key).add(value);        }    }    /**     * 增加Section     * @param map     * @param section     */    privatevoidaddSection(Map<String, Map<String, List<String>>> map,            String section) {        if(!map.containsKey(section)) {            currentSection = section;            Map<String,List<String>> childMap = newHashMap<String, List<String>>();            map.put(section, childMap);        }    }        /**     * 获取配置文件指定Section和指定子键的值     * @param section     * @param key     * @return     */    publicList<String> get(String section,String key){        if(map.containsKey(section)) {            returnget(section).containsKey(key) ?                    get(section).get(key): null;        }        returnnull;    }                /**     * 获取配置文件指定Section的子键和值     * @param section     * @return     */    publicMap<String, List<String>> get(String section){        returnmap.containsKey(section) ? map.get(section) : null;    }        /**     * 获取这个配置文件的节点和值     * @return     */    publicMap<String, Map<String, List<String>>> get(){        returnmap;    }    } | 
标签:trim 情况 keyword exception rac oid div index contain
原文地址:http://www.cnblogs.com/yanhuan123/p/7093178.html