Java 加快大型文件中的正则表达式搜索
我有从5Mb到600MB的大文件。我需要解析它们并用正则表达式进行比较。但这需要一段时间来比较。例如,500kb文件的代码为35秒 这是我的密码:Java 加快大型文件中的正则表达式搜索,java,regex,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 =
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;
}
有人知道我应该怎么做才能更快吗?您找到了多少个匹配项?如果消除
System.out.println(f),是否还需要35秒代码>语句?为什么在累积行的循环中调用regexCompare()
?每次添加一行时,您都在处理整个字符串。@Alan Moore是对的,您一次只能比较一行。代码不完整。正则表达式可能存在严重的问题,但是缺少了它。symbolsPattern
中的正则表达式是什么?请编辑您的问题以显示它。