Einlesen und Analyse eines Logfiles

hankenberge

Mitglied
Hallo,

ich möchte gerne ein Logfile, bis max. 1MB, komplett einlesen. Anschliessend soll dieses Logfile auf bestimmte Textstellen untersucht werden. Die Zeile, in der die textstelle auftritt, soll im Anschluss komplett ausgegeben werden.
Folgende Probleme habe ich.
Ich lese die datei zeilenweise ein, dieses kann aber sehr lange dauern, und speichere die Datei in einem String ab.
Im Anschluss versuche ich mit
Code:
indexOf(String str, int fromIndex)
die einzelnen auftretenden vorkommen zufinden.
Wenn eine textstelle gefunden, suche ich von dem gefundenen index, das linke und rechte
Code:
\n
und extrahiere so die Textzeile.

Irgendwie kommt mir das super umständlich vor. Aber wenn ich die datei in einen StringArray einlese, dauert dieser Vorgang noch länger. Und die möchte keine 15 Minuten auf ein Ergebniss warten.

Hat jemand eine bessere Idee, wie ich diese Untersuchung optimieren kann+

Danke

Ingo
 
hankenberge hat gesagt.:
Hallo,

ich möchte gerne ein Logfile, bis max. 1MB, komplett einlesen. Anschliessend soll dieses Logfile auf bestimmte Textstellen untersucht werden. Die Zeile, in der die textstelle auftritt, soll im Anschluss komplett ausgegeben werden.
Folgende Probleme habe ich.
Ich lese die datei zeilenweise ein, dieses kann aber sehr lange dauern, und speichere die Datei in einem String ab.
Im Anschluss versuche ich mit
Code:
indexOf(String str, int fromIndex)
die einzelnen auftretenden vorkommen zufinden.
Wenn eine textstelle gefunden, suche ich von dem gefundenen index, das linke und rechte
Code:
\n
und extrahiere so die Textzeile.

Irgendwie kommt mir das super umständlich vor. Aber wenn ich die datei in einen StringArray einlese, dauert dieser Vorgang noch länger. Und die möchte keine 15 Minuten auf ein Ergebniss warten.

Hat jemand eine bessere Idee, wie ich diese Untersuchung optimieren kann+

Danke

Ingo

Hallo Ingo
versuche es doch mit einem StrinBuffer, den Du entsprechend groß zu Begin anlegst.
Code:
z.B. StringBuffer logBuff = new StringBuffer(500000);

würdest Du den Buffer nicht gleich relativ groß machen würde es vermute ich auch relativ Zeit ins Land gehenn, da der Defaultwert 16 ist.

Grüße

Takidoso
 
Zurück