一个读写ini文件属性的例子

来源:互联网 发布:直播源码 编辑:程序博客网 时间:2024/05/17 22:59
public final class INI {     private final static Map<String, Map<String, Object>> iniFile = new HashMap<String, Map<String, Object>>();         private INI(){};         final public static synchronized void setValue(String section, String key,Object value) {         Map<String,Object> sectionMap =iniFile.get(section);         if(sectionMap==null){             sectionMap = new HashMap<String,Object>();             iniFile.put(section, sectionMap);         }         sectionMap.put(key, value);     }         final public static synchronized Object getValue(String section, String key) {         Object obj = null;         Map<String, Object> item = iniFile.get(section);         if (item != null) {             obj = item.get(key);         }         return obj;     }     //加载ini文件     final public static synchronized void load(String path) throws IOException {         BufferedReader reader = new BufferedReader(new FileReader(path));         String str = reader.readLine();         String section = null;         while (str != null) {             if (str.startsWith("[")&& str.endsWith("]")) {  //读取ini文件模块头                 Map<String, Object> itemMap = new HashMap<String, Object>();                 section = str.substring(1, str.length() - 1);//获取ini文件头                 // System.out.println(section);                 iniFile.put(section, itemMap);//把ini文件头放入map中             }else if(str.indexOf("=")>0){                 Map<String, Object> itemMap = iniFile.get(section);//获取对应的ini文件头 并读取key 和 value                 String key = str.substring(0, str.indexOf("="));                 String value = str.substring(str.indexOf("=") + 1);                 itemMap.put(key, value);             }             str = reader.readLine();         }         reader.close();     }         final public static synchronized void write(String path) throws IOException {         StringBuffer sb = new StringBuffer("");         String crlf=System.getProperty("line.separator");//分隔符         for (String section : iniFile.keySet()) {             sb.append("[").append(section).append("]").append(crlf);             Map<String, Object> map = iniFile.get(section);             Set<String> keySet = map.keySet();             for (String key : keySet) {                 sb.append(key).append("=").append(map.get(key)).append(crlf);             }         }        /* File file = new File(path);         if (!file.exists()) {             file.createNewFile();         }*/         BufferedWriter writer = new BufferedWriter(new FileWriter(path));         writer.write(sb.toString());         writer.flush();         writer.close();     }}


原创粉丝点击