`
jackie9305
  • 浏览: 38289 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

java读取配置文件

    博客分类:
  • JAVA
阅读更多

java 读取 *.properties 这样的配置文件,一般用现成的java.util.Properties来实现读取,比如下面的例子:

ip=192.168.0.1   
port=8080

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipConfig.properties");  
// InputStream inputStream = new InputStream("c:\\ipConfig.properties");
  Properties p = new Properties();   
  try {   
   p.load(inputStream);   
  } catch (IOException e1) {   
   e1.printStackTrace();   
  }   
System.out.println("ip:"+p.getProperty("ip")+",port:"+p.getProperty("port"));

 但是,今天我遇到了下面这个配置文件:

SessionDateTime=16/10/2007 09:51:32
WorkstationID=3688
Username=345464
UploadStatus=
Total Number of Applications=5
OnlinePassword=qv3COHDsvNPVV7ZCOomCE04Xkn4=
ErrorDesc=
LoginTime=16/10/2007 09:51:32
LogoutTime=16/10/2007 10:36:25
LanServerGroup=GRO1
RECORD=EUOE280622807,SHROFF
RECORD=EUOE280621707,LABEL
RECORD=EUEP000010407,LABEL
RECORD=EUEP000011207,DOCVER

这里有2个问题:

1. 有一个key的名字是Total Number of Applications ,这对于java.util.Properties来说,是不认的,key不能有空格和其他的处理特殊字符,它会以遇到的第一个特殊字符来做分割,所以这里,它认到的key是“Total” ,而value是“Number of Applications=5”,没办法,只能用String 的spilt来再自己处理一下。

2. 最后有一个属性是RECORD有4个,这个java.util.Properties就无法处理了,他会用最后一个覆盖到前面读到的,这里就只能用org.apache.commons.configuration.PropertiesConfiguration,又是apache的东东.

PropertiesConfiguration config = new PropertiesConfiguration();
config.load(new FileInputStream(fullFilename));

List l = config.getList("RECORD");

apache 的这个PropertiesConfiguration封装了java.util.Properties,获得了比它更完善的功能,可以自动封装对象,蛮好用的。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics