加速大文件中的正则表达式搜索

时间:2016-04-06 15:43:01

标签: java regex

我的大文件从5Mb到600Mb。我需要解析它们并通过正则表达式进行比较。但需要一段时间才能进行比较。例如,500kb文件需要35秒的代码。

这是我的代码:

Date currentTime = new Date(); 
String fileContents = ""; 
File file = new File(filePath); 
BufferedReader br = new BufferedReader(new FileReader(file)); 
while((fileContents = br.readLine()) !=null) 
{ 
    fileContents += br.readLine() + "\n"; 
    regexCompare(fileContents); 
} 
br.close(); 
Date newTime = new Date(); 
long msDelay = newTime.getTime() - currentTime.getTime(); 
timeLabel.setText("Maked in " + msDelay + " ms");

我的正则表达式功能:

private int regexCompare(String text) {
    if (text.isEmpty()) return 0;
        Matcher m = Pattern.compile(symbolsPattern).matcher(text);

    while (m.find()) {
        allMatches.add(m.group());
    }

    for (String f :allMatches) {
            System.out.println(f);
    }

    return 1;
}

有谁知道我该怎么做才能让它更快?

0 个答案:

没有答案