当前位置: 代码迷 >> Java相关 >> 跪求大神指点迷津,该怎么解决
  详细解决方案

跪求大神指点迷津,该怎么解决

热度:8971   发布时间:2013-02-25 21:47:18.0
跪求大神指点迷津
这是一个文件中的内容,我需要取到文件中,ip的值,linetype的值,以及nodename的值,该怎么解析呢,如果是正则表达式,请帮小弟写几个正则表达式的
[node1]
ip=6E67309A952D99EE4DC5F732C7D1A63A
port=80
linetype=2
nodecode=2
right=1
nodename=河南网通1(正常)

[node2]
ip=6E67309A952D99EE818CABC663E14156
port=80
linetype=2
nodecode=2
right=1
nodename=河南网通2(正常)
...


我能不能用分割的方法封装成对象呢?

如果用分割的方法,遇到[node2]这一类的字符肯定要报错的


求指导,在线等的。。。

------解决方案--------------------------------------------------------
代码帮你写了一段,可以取出来,但是需要你自己处理null的,因为split后第一个是空的
Java code
public static void main(String[] args) throws Exception{        Reader reader = new FileReader("D:\\workspace\\test\\src\\test.txt");        StringBuffer sb = new StringBuffer();        char[] buf = new char[1024];        int i = 0;        while((i = reader.read(buf)) != -1){            sb.append(new String(buf, 0, i));        }        reader.close();                String str = sb.toString();        str.replace(" ", "");        String[] ss = str.split("\\[node\\d\\]");        Properties p = new Properties();        for(String s : ss){            StringReader sr = new StringReader(s);            p.load(sr);            System.out.println(p.get("ip"));            System.out.println(p.get("port"));            System.out.println(p.get("linetype"));            System.out.println(p.get("nodecode"));            System.out.println(p.get("right"));            System.out.println(p.get("nodename"));        }    }