打印

分享最近一个JAVA项目:读取.ini配置文件

[复制链接]
714|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keer_zu|  楼主 | 2015-11-5 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ni, JAVA, IO, TI, ST
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Properties;

import com.sun.star.io.IOException;

public class IniReader {
       
        protected HashMap<String, Properties> sections = new HashMap<String, Properties>();
        private transient String currentSecion;
        private transient Properties current;
       
        public IniReader(String filename) throws IOException, java.io.IOException {
                InputStream input = IniReader.class.getClassLoader().getResourceAsStream(filename);
            BufferedReader reader= new BufferedReader(new InputStreamReader(input));
                read(reader);
                reader.close();
        }
       
        protected void read(BufferedReader reader) throws IOException, java.io.IOException {
                String line;
                while ((line = reader.readLine()) != null) {
                        parseLine(line);
                }
        }
       
        protected void parseLine(String line) {
                line = line.trim();
                if (line.matches("\\[.*\\]")) {
                        currentSecion = line.replaceFirst("\\[(.*)\\]", "$1");
                        current = new Properties();
                        sections.put(currentSecion, current);
                } else if (line.matches(".*=.*")) {
                        if (current != null) {
                                int i = line.indexOf('=');
                                String name = line.substring(0, i);
                                String value = line.substring(i + 1);
                                current.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;
        }
       
        public boolean setValue(String section,String name,String value){
                Properties p = (Properties) sections.get(section);
               
                if (p == null) {
                        return false;
                }
               
                p.setProperty(name, value);
               
                return true;
        }

}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1314

主题

12271

帖子

53

粉丝