android个人笔记(五)——解析ini文件

来源:互联网 发布:淘宝价格趋势图插件 编辑:程序博客网 时间:2024/06/07 17:23

解析ini文件

package com.example.effecttest;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Properties;import android.content.Context;public class IniReaderHasSection {        protected HashMap<String, Properties> sections = new HashMap<String, Properties>();        private transient String section;        private transient Properties properties;        /*public IniReaderHasSection(String filename) throws IOException {                BufferedReader reader = new BufferedReader(new FileReader(filename));                read(reader);                reader.close();        }*/                public IniReaderHasSection(String fileName) throws IOException{              //sections = new HashMap<String, Properties>();              BufferedReader reader = new BufferedReader(new FileReader(fileName));              read(reader);              reader.close();          }                    /**          * 读取asset文件          * @param context          * @param iniPath          */          public IniReaderHasSection(Context context,String iniPath){              try{                  //sections = new HashMap<String, Properties>();                  InputStream inputStream = context.getResources().getAssets().open(iniPath);                  BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));                  read(reader);                  reader.close();              }catch(Exception ex){                  ex.printStackTrace();              }                        }        protected void read(BufferedReader reader) throws IOException {                String line;                while ((line = reader.readLine()) != null) {                        parseLine(line);                }        }        protected void parseLine(String line) {                line = line.trim();                if (line.matches("\\[.*\\]")) {                        section = line.replaceFirst("\\[(.*)\\]", "$1");                        properties = new Properties();                        sections.put(section, properties);                } else if (line.matches(".*=.*")) {                        if (properties != null) {                                int i = line.indexOf('=');                                String name = line.substring(0, i);                                String value = line.substring(i + 1);                                properties.setProperty(name, value);                        }                }        }        public String getValue(String section, String name) {                Properties p = (Properties) sections.get(section);                if (p == null) {                        return null;                }                String value = p.getProperty(name);                return value;        }}

ini文件示例:
;特技个数[PlugInNum]PlugInNum=2;特技名称(用来传递给openPlugIn,load特技插件)[PlugInName]PlugInName_0=ColorPlugInName_1=Grey;特技按钮显示名称,顺序和PlugInName键顺序对应[PlugInBtnName]PlugInBtnName_0=ColorPlugInBtnName_1=Grey


0 0
原创粉丝点击