跪求大神指点迷津
这是一个文件中的内容,我需要取到文件中,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后第一个是空的
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")); } }