Java读取ini文件(带sections)

最近公司要写个工具,本着让工具更具有灵活性,能够适应以后需求的变更,思量着传统的properties配置文件已经不能满足要求,因此改用ini配置文件,以下是我从网上找的例子写的一个类,仅供参考。

package test; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Properties; public class JavaIniProcess { protected HashMap sections = new HashMap(); private transient String currentSection; private transient Properties current; public void IniReader(String filename) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(filename)); read(reader); reader.close(); } 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("//[.*//]")) { currentSection = line.replaceFirst("//[(.*)//]", "$1"); current = new Properties(); sections.put(currentSection, 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 secion ,String name) { Properties p = (Properties)sections.get(secion); if(p == null) { return null; } String value = p.getProperty(name); return value; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub JavaIniProcess test = new JavaIniProcess(); try { String basedir = System.getProperty("user.dir"); test.IniReader(basedir + "//" + "test.ini"); System.out.println(test.getValue("CONFIG1", "name")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

test.ini内容如下:

[CONFIG1] name=test1 age=10 [CONFIG2] name=test2 age=11 [CONFIG3] name=test3 age=12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值