posts - 14,  comments - 37,  trackbacks - 0
以下这个类是在JAVA中如何读取Properties配置文件:
  1package cn.com.cinda.rtx.common;
  2
  3import java.io.BufferedReader;
  4import java.io.FileReader;
  5import java.io.IOException;
  6import java.util.HashMap;
  7import java.util.Properties;
  8import java.util.*;
  9import java.io.*;
 10
 11
 12public class IniReader {
 13    protected LinkedHashMap sections; //使用
 14
 15    public IniReader() {
 16        super();
 17        sections = new LinkedHashMap();
 18    }

 19
 20    public LinkedHashMap getSections() {
 21        return sections;
 22    }

 23
 24    public LinkedHashMap getSection(String sectionName) {
 25        if (sections != null{
 26            return (LinkedHashMap) sections.get(sectionName);
 27        }
 else {
 28            return null;
 29        }

 30    }

 31
 32    public String get(String sectionName, String key) {
 33        Map section1 = (Map) sections.get(sectionName);
 34        if (section1 == null{
 35            return "";
 36        }

 37        return (String) section1.get(key);
 38    }

 39
 40
 41    public void load(String fileName) throws FileNotFoundException {
 42        InputStream is = null;
 43        try {
 44            is = new FileInputStream(fileName);
 45            load(is);
 46        }
 catch (IOException e) {
 47            e.printStackTrace();
 48        }
 finally {
 49            if (is != null{
 50                try {
 51                    is.close();
 52                }
 catch (IOException e1) {}
 53            }

 54        }

 55    }

 56
 57    public void load(InputStream is) throws IOException {
 58        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
 59        String line = null;
 60        String lastSectionName = null;
 61        while ((line = reader.readLine()) != null{
 62            line = line.trim();
 63            if (line.startsWith("#")) {
 64                continue;
 65            }

 66            if (line.startsWith("["&& line.endsWith("]")) {
 67                lastSectionName = line.trim().substring(1, line.length() - 1);
 68                sections.put(lastSectionName, new LinkedHashMap()); //创建一个section
 69            }
 else if (line.length() == 0{
 70                continue;
 71            }
 else {
 72                if (lastSectionName != null{
 73                    Map section = (Map) sections.get(lastSectionName);
 74                    int index = line.indexOf('=');
 75                    String key = index > 0 ? line.substring(0, index) : line; //如果没有等号,直接做key和value
 76                    String value = index > 0 ? line.substring(index + 1) : line;
 77                    section.put(key, value);
 78                }

 79            }

 80        }

 81    }

 82
 83    public static void main(String[] args) {
 84        IniReader iniReader = new IniReader();
 85        try {
 86          FileInputStream fileInputStream = new FileInputStream("/etc/portalconf/jmsconfig.property");
 87            iniReader.load(fileInputStream);
 88            Map sections = iniReader.getSection("serverconf");
 89            java.util.Iterator it = sections.keySet().iterator();
 90            while (it.hasNext()) {
 91                String key = (String) it.next();
 92                System.out.println(key + "=" + sections.get(key));
 93            }

 94
 95        }
 catch (IOException e) {
 96            e.printStackTrace();
 97        }

 98    }

 99}

100
101
102
posted on 2007-06-26 14:34 冰封的爱 阅读(1671) 评论(0)  编辑  收藏 所属分类: 技术

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(3)

随笔档案

文章分类

文章档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜