Hallo erstmal,
ich habe mehrere große Logdateien die ca. 50 - 500 MB groß werden können, und will diese gerne mit Regex durchsuchen.
Leider ist mir aufgefallen das es bei einer 30MB Datei (ca. 100.000 Zeilen) schon min. 3 Sec. dauert
bis die Datei komplett durchsucht wurde.
Wisst ihr vielleicht eine perfomantere Möglichkeit große Dateien zu durchsuchen?!
Das Problem scheint das einlesen der Zeilen in den Stringbuffer zu sein.
Danke schon mal für eure Antworten
Gruß
ich habe mehrere große Logdateien die ca. 50 - 500 MB groß werden können, und will diese gerne mit Regex durchsuchen.
Leider ist mir aufgefallen das es bei einer 30MB Datei (ca. 100.000 Zeilen) schon min. 3 Sec. dauert
bis die Datei komplett durchsucht wurde.
Wisst ihr vielleicht eine perfomantere Möglichkeit große Dateien zu durchsuchen?!
Das Problem scheint das einlesen der Zeilen in den Stringbuffer zu sein.
Java:
Scanner sc = null;
try {
sc = new Scanner(new File("D:/grosseLogDatei.log"));
} catch (FileNotFoundException e) {
System.err.println("File not found" + e.getMessage());
}
StringBuffer buff = new StringBuffer();
while (sc.hasNext()) {
buff.append(sc.nextLine());
}
String regex = ("(?i)" + "(suchtext)");
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(buff);
while (m.find()) {
System.out.println(" " + m.group());
}
sc.close();
Danke schon mal für eure Antworten
Gruß