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")));

	}

}

  

你可能感兴趣的:(android)