zoukankan      html  css  js  c++  java
  • android操作ini工具类

    package com.smarteye.common;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.regex.Pattern;
    
    /**
     * ini文件工具类
     * 
     * @author xuwanshu
     * 
     */
    public class IniFileTools {
    
        /**
         * 点节
         * 
         * @author liucf
         * 
         */
        public class Section {
    
            private String name;
    
            private Map<String, Object> values = new LinkedHashMap<String, Object>();
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public void set(String key, Object value) {
                values.put(key, value);
            }
    
            public Object get(String key) {
                return values.get(key);
            }
    
            public Map<String, Object> getValues() {
                return values;
            }
    
        }
    
        /**
         * 换行符
         */
        private String line_separator = "\n";
    
        /**
         * 编码
         */
        private String charSet = "UTF-8";
    
        private Map<String, Section> sections = new LinkedHashMap<String, Section>();
    
        /**
         * 指定换行符
         * 
         * @param line_separator
         */
        public void setLineSeparator(String line_separator) {
            this.line_separator = line_separator;
        }
    
        /**
         * 指定编码
         * 
         * @param charSet
         */
        public void setCharSet(String charSet) {
            this.charSet = charSet;
        }
    
        /**
         * 设置值
         * 
         * @param section
         *            节点
         * @param key
         *            属性名
         * @param value
         *            属性值
         */
        public void set(String section, String key, Object value) {
            Section sectionObject = sections.get(section);
            if (sectionObject == null)
                sectionObject = new Section();
            sectionObject.name = section;
            sectionObject.set(key, value);
            sections.put(section, sectionObject);
        }
    
        /**
         * 获取节点
         * 
         * @param section
         *            节点名称
         * @return
         */
        public Section get(String section) {
            return sections.get(section);
        }
    
        /**
         * 获取值
         * 
         * @param section
         *            节点名称
         * @param key
         *            属性名称
         * @return
         */
        public Object get(String section, String key) {
            return get(section, key, null);
        }
    
        /**
         * 获取值
         * 
         * @param section
         *            节点名称
         * @param key
         *            属性名称
         * @param defaultValue
         *            如果为空返回默认值
         * @return
         */
        public Object get(String section, String key, String defaultValue) {
            Section sectionObject = sections.get(section);
            if (sectionObject != null) {
                Object value = sectionObject.get(key);
                if (value == null || value.toString().trim().equals(""))
                    return defaultValue;
                return value;
            }
            return null;
        }
    
        /**
         * 删除节点
         * 
         * @param section
         *            节点名称
         */
        public void remove(String section) {
            sections.remove(section);
        }
    
        /**
         * 删除属性
         * 
         * @param section
         *            节点名称
         * @param key
         *            属性名称
         */
        public void remove(String section, String key) {
            Section sectionObject = sections.get(section);
            if (sectionObject != null)
                sectionObject.getValues().remove(key);
        }
    
        /**
         * 当前操作的文件对像
         */
        private File file = null;
    
        public IniFileTools() {
    
        }
    
        public IniFileTools(File file) {
            this.file = file;
            initFromFile(file);
        }
    
        public IniFileTools(InputStream inputStream) {
            initFromInputStream(inputStream);
        }
    
        /**
         * 加载一个ini文件
         * 
         * @param file
         */
        public void load(File file) {
            this.file = file;
            initFromFile(file);
        }
    
        /**
         * 加载一个输入流
         * 
         * @param inputStream
         */
        public void load(InputStream inputStream) {
            initFromInputStream(inputStream);
        }
    
        /**
         * 写到输出流中
         * 
         * @param outputStream
         */
        public void save(OutputStream outputStream) {
            BufferedWriter bufferedWriter;
            try {
                bufferedWriter = new BufferedWriter(new OutputStreamWriter(
                        outputStream, charSet));
                saveConfig(bufferedWriter);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 保存到文件
         * 
         * @param file
         */
        public void save(File file) {
            try {
                BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(
                        file));
                saveConfig(bufferedWriter);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 保存到当前文件
         */
        public void save() {
            save(this.file);
        }
    
        /**
         * 从输入流初始化IniFile
         * 
         * @param inputStream
         */
        private void initFromInputStream(InputStream inputStream) {
            BufferedReader bufferedReader;
            try {
                bufferedReader = new BufferedReader(new InputStreamReader(
                        inputStream, charSet));
                toIniFile(bufferedReader);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 从文件初始化IniFile
         * 
         * @param file
         */
        private void initFromFile(File file) {
            BufferedReader bufferedReader;
            try {
                bufferedReader = new BufferedReader(new FileReader(file));
                toIniFile(bufferedReader);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 从BufferedReader 初始化IniFile
         * 
         * @param bufferedReader
         */
        private void toIniFile(BufferedReader bufferedReader) {
            String strLine;
            Section section = null;
            Pattern p = Pattern.compile("^\\[.*\\]$");
            try {
                while ((strLine = bufferedReader.readLine()) != null) {
                    if (p.matcher((strLine)).matches()) {
                        strLine = strLine.trim();
                        section = new Section();
                        section.name = strLine.substring(1, strLine.length() - 1);
                        sections.put(section.name, section);
                    } else {
                        String[] keyValue = strLine.split("=");
                        if (keyValue.length == 2) {
                            section.set(keyValue[0], keyValue[1]);
                        }
                    }
                }
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 保存Ini文件
         * 
         * @param bufferedWriter
         */
        private void saveConfig(BufferedWriter bufferedWriter) {
            try {
                boolean line_spe = false;
                if (line_separator == null || line_separator.trim().equals(""))
                    line_spe = true;
                for (Section section : sections.values()) {
                    bufferedWriter.write("[" + section.getName() + "]");
                    if (line_spe)
                        bufferedWriter.write(line_separator);
                    else
                        bufferedWriter.newLine();
                    for (Map.Entry<String, Object> entry : section.getValues()
                            .entrySet()) {
                        bufferedWriter.write(entry.getKey());
                        bufferedWriter.write("=");
                        bufferedWriter.write(entry.getValue().toString());
                        if (line_spe)
                            bufferedWriter.write(line_separator);
                        else
                            bufferedWriter.newLine();
                    }
                }
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }

    ini操作类

    package com.smarteye.common;
    
    import java.io.File;
    
    import com.smarteye.adapter.BVPU_ServerParam;
    
    public class AddressManage {
    	public static final String ADDRESS_DIR = MPUPath.MPU_PATH_ROOT
    			+ "/address.ini";
    
    	/**
    	 * 验证是否存在该文件
    	 * 
    	 * @return
    	 * @throws Exception
    	 */
    	public static boolean isExist() throws Exception {
    		try {
    			File f = new File(ADDRESS_DIR);
    			if (!f.exists()) {
    				return false;
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    			return false;
    		}
    		return true;
    	}
    
    	public static void createIni(BVPU_ServerParam param) {
    		IniFileTools file2 = new IniFileTools();
    		file2.set("address", "ip", param.szServerAddr);
    		file2.set("address", "port", param.iServerPort);
    		file2.save(new File(ADDRESS_DIR));
    	}
    
    	public static void readIni(BVPU_ServerParam param) {
    		IniFileTools file2 = new IniFileTools(new File(ADDRESS_DIR));
    		param.szServerAddr = file2.get("address", "ip").toString();
    		param.iServerPort = Integer.parseInt(String.valueOf(file2.get(
    				"address", "port")));
    	}
    }
    

      

  • 相关阅读:
    Flink 源码解析 —— 深度解析 Flink 序列化机制
    Flink Metrics 源码解析
    Flink 源码解析 —— JobManager 处理 SubmitJob 的过程
    vue封装插件并发布到npm上
    vue+ivew-admin开发项目,内存占用过大解决办法
    Vue-cli 2.9 多页配置及多页面之间的跳转问题
    vuex2.0 基本使用(3) --- getter
    vuex2.0 基本使用(2) --- mutation 和 action
    vuex2.0 基本使用(1) --- state
    如何新建仓并 上传本地新的项目
  • 原文地址:https://www.cnblogs.com/dashumeizi/p/4421816.html
Copyright © 2011-2022 走看看