如何从以下文字内容中优雅地提取这些值?我有这个包含数千个条目的长文件。我尝试了XML Parser和Slurper方法,但是内存不足。我只有1GB。所以现在我逐行读取文件并提取值。但我认为在Java / Groovy中应该有更好的方法来做到这一点,也许是一种更清洁和可重用的方式。 (我从标准输入中读取内容)
1行内容:
<sample t="336" lt="0" ts="1406036100481" s="true" lb="txt1016.pb" rc="" rm="" tn="Thread Group 1-9" dt="" by="0"/>
我的Groovy解决方案:
Map<String, List<Integer>> requestSet = new HashMap<String, List<Integer>>();
String reqName;
String[] tmpData;
Integer reqTime;
System.in.eachLine() { line ->
if (line.find("sample")){
tmpData = line.split(" ");
reqTime = Integer.parseInt(tmpData[1].replaceAll('"', '').replaceAll("t=", ""));
reqName = tmpData[5].replaceAll('"', '').replaceAll("lb=", "");
if (requestSet.containsKey(reqName)){
List<Integer> myList = requestSet.get(reqName);
myList.add(reqTime);
requestSet.put(reqName, myList);
}else{
List<Integer> myList = new ArrayList<Integer>();
myList.add(reqTime);
requestSet.put(reqName, myList);
}
}
}
任何可以改善此问题的建议或代码段?