Logdatei durchsuchen, Suchstand abspeichern?

lokly

Aktives Mitglied
Hallo zusammen,

ich habe eine Logfile in die immer wieder etwas rein geschrieben wird (append). Diese möchte ich nach einem Wort durchsuchen. Die Suche endet am Ende der Logfile. Erweitert sich das Log, dann startet die Suche erneut.
Ich möchte jetzt erreichen, dass die neue Suche direkt da weitermacht, wo sie geendet ist.

Wie kann ich den Stand der Suche abspeichern?

Vielen Dank und Gruß
 

rme

Top Contributor
Je nachdem, mit welchen Klassen du die Datei liest, gibt es üblicherweise eine Methode [c]position[/c] zur Ermittlung der aktuellen Position und [c]seek[/c], um später zu dieser Position zurückzuspringen.

Edit: Schlechte Idee, die Dateigröße als seek-Wert zu nehmen, entfernt.
 
Zuletzt bearbeitet:

rme

Top Contributor
FileChannel. Da heißen die Methoden beide position: Ohne Parameter gibt's die aktuelle Position zurück, mit Parameter wird die Position gesetzt.
 

eMmiE

Bekanntes Mitglied
Kannst es ja auch "per Hand" programmieren, also einfach eine long nehmen, um die Zeichen, die du schon durchsucht hast abzuspeichern.
Bei deiner Anwendung wäre das sogar eine sehr einfach Lösung, weil einfach am Ende eingeben kannst:
Code:
long pos = file.getLength()

Gruß eMmiE
 

rme

Top Contributor
Das mit getLength hatte ich auch zuerst geantwortet, aber dann wieder zurückgezogen, weil ich es für eine schlechte Idee halte: Auf diese Weise bekommst du nämlich nicht mit, falls sich während der Auswertung die Datei geändert hat, d.h. getLength gibt dann eine größere Zahl zurück als die Anzahl der bearbeiteten Zeichen.
 

lokly

Aktives Mitglied
Ich denke ich nehme eine Kombination aus allem RandomAccessFile liesst ein, mit length Speicher ich die Größe. Ändert sich die Datei (es kommt wenn nur etwas am Ende hinzu), liesst RandomAccessFile erneut ein und springt über seek zum letzten, bekannten Punkt.
Hat zumindest in einem kurzen Test gerade funktioniert.

Vielen Dank für die Antworten..
 

rme

Top Contributor
Ich glaube nicht, dass das folgendes Problem löst:

* Dateigröße ändert sich von 10 auf 20 Bytes
* deine Klasse fängt an zu arbeiten
* deine Klasse ist fertig und kurz davor, getLength aufzurufen
* Dateigröße ändert sich von 20 auf 30 Bytes
* deine Klasse ruft getLength auf und denkt nun, dass sie 30 Bytes verarbeitet hat
* deine Klasse fängt wegen des vorletzen Schritts erneut an - bei Stand 30, womit Bytes 20-30 fehlen
 

lokly

Aktives Mitglied
Mmh... Dachte daran die Größe vorher zu lesen:

* Dateigröße ändert sich von 10 auf 20 Bytes
* Ich lese die Datei neu ein und Speicher die Größe zum Zeitpunkt des einlesen ab.
* meine Klasse ist fertig
* Dateigröße ändert sich von 20 auf 30 Bytes
* meine Klasse ließt die File erneut und speichert length. seek springt auf die 20 Byte Position und fängt ab da an

Oder wäre das nicht all zu performant?
 

rme

Top Contributor
Die Performance unterscheidet sich hier nicht wahrnehmbar. Dein Vorgehen macht das von mir skizzierte Problem weniger wahrscheinlich, aber du kannst es nicht ausschließen - weil die Datei sich zu *jedem* beliebigen Zeitpunkt ändern kann, egal was dein Code gerade macht. Normalerweise lockt man für sowas die Datei, aber das kannst du ja nicht, weil der loggende Prozess das nicht mögen würde. Deshalb ist IMHO die einzig richtige Lösung, auf irgendeine Weise am Ende zu speichern, bis zu welchem Stand gerade tatsächlich gearbeitet wurde, damit du danach dort fortsetzen kannst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F LogDatei static Methoden Java Basics - Anfänger-Themen 8
M Logdatei schreiben Java Basics - Anfänger-Themen 3
H Format des Datums in Logdatei Java Basics - Anfänger-Themen 2
R log4j - Datum an Logdatei anhängen möglich? Java Basics - Anfänger-Themen 7
cowabunga1984 Größe einer Logdatei begrenzen Java Basics - Anfänger-Themen 9
S Textdatei mit Zeilensprung - logDatei auswerten Java Basics - Anfänger-Themen 5
D Struktur in einer Logdatei Java Basics - Anfänger-Themen 2
districon 2D Array - Zeilen und Spalten durchsuchen Java Basics - Anfänger-Themen 3
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
F Array nach Objektattribut durchsuchen Java Basics - Anfänger-Themen 6
O ArrayList oberflächig durchsuchen Java Basics - Anfänger-Themen 3
M Array nach String durchsuchen und zurückgeben Java Basics - Anfänger-Themen 16
Orkanson Best Practice Array Diagonal durchsuchen Java Basics - Anfänger-Themen 2
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
M CSV Datei durchsuchen Java Basics - Anfänger-Themen 4
M Array nach Zehnen durchsuchen. Java Basics - Anfänger-Themen 25
C String durchsuchen Java Basics - Anfänger-Themen 4
MiMa Lösungsansatz fürText durchsuchen mit Stichwörter Java Basics - Anfänger-Themen 9
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
F Mehrdimensionales Array durchsuchen Java Basics - Anfänger-Themen 8
P Input/Output Arraylist nach String eines Objekts durchsuchen Java Basics - Anfänger-Themen 26
X Probleme beim rekursiven Durchsuchen von Verzeichnissen Java Basics - Anfänger-Themen 1
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
S Zahlen Array durchsuchen Java Basics - Anfänger-Themen 6
F Map nach Werten durchsuchen Java Basics - Anfänger-Themen 3
S Ordnerstrukturen durchsuchen und Files bearbeiten Java Basics - Anfänger-Themen 6
W Array nach String durchsuchen und Ausgeben Java Basics - Anfänger-Themen 8
O Objekte nach Attributen durchsuchen Java Basics - Anfänger-Themen 10
R 2 mit Arrays bestückte LinkedLists durchsuchen/vergleichen Java Basics - Anfänger-Themen 3
S Array durchsuchen Java Basics - Anfänger-Themen 3
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
I String durchsuchen Java Basics - Anfänger-Themen 2
I ArrayList<EigeneKlasse> durchsuchen Java Basics - Anfänger-Themen 2
K CSV durchsuchen und bearbeiten Java Basics - Anfänger-Themen 1
H String einlesen, in .txt durchsuchen und Ergebnisse ausgeben Java Basics - Anfänger-Themen 22
F Classpath Dateien einbinden und Classpath durchsuchen Java Basics - Anfänger-Themen 2
R Erste Schritte API durchsuchen Java Basics - Anfänger-Themen 5
F HashMap nach kleinstem Value durchsuchen Java Basics - Anfänger-Themen 11
J Dynamische Liste durchsuchen + anpassen Java Basics - Anfänger-Themen 3
S Text mit Programm einlesen und durchsuchen Java Basics - Anfänger-Themen 8
O Quellcode nach bestimmter Ausgabe durchsuchen Java Basics - Anfänger-Themen 14
M String nach Zahlen durchsuchen Java Basics - Anfänger-Themen 21
I Dateien in Ordner und Unterordner durchsuchen Java Basics - Anfänger-Themen 18
F Textfile auslesen und durchsuchen Java Basics - Anfänger-Themen 13
F String durchsuchen Java Basics - Anfänger-Themen 11
L eingegebene Strings nache Eigenschaften durchsuchen. Java Basics - Anfänger-Themen 25
B ArrayList nach Wiederholungen durchsuchen Java Basics - Anfänger-Themen 2
K OOP Objektgefülltes Array nach minWert durchsuchen Java Basics - Anfänger-Themen 5
J Ordner und Unterordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 7
R liste durchsuchen Java Basics - Anfänger-Themen 6
K Klassen String - nach Wort durchsuchen Java Basics - Anfänger-Themen 6
R Verzeichnisse rekursiv nach Dateiduplikaten durchsuchen Java Basics - Anfänger-Themen 5
W Variablen durchsuchen Java Basics - Anfänger-Themen 5
B Zweidimensionales Array durchsuchen und ändern Java Basics - Anfänger-Themen 8
C Strings durchsuchen und umwandeln Java Basics - Anfänger-Themen 4
P String durchsuchen Java Basics - Anfänger-Themen 17
StupidAttack Html Code durchsuchen Java Basics - Anfänger-Themen 2
G Datentypen "Liste" eigener Objekte durchsuchen Java Basics - Anfänger-Themen 6
J geschickter Algorithmus um die 'Umgebung' einer stelle eines Arrays zu durchsuchen Java Basics - Anfänger-Themen 7
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
N OOP Dynamische Objekte und nach Parametern durchsuchen Java Basics - Anfänger-Themen 4
H Datei durchsuchen mit Regex-Ausdruck Java Basics - Anfänger-Themen 14
D schnelles durchsuchen von Dateien Java Basics - Anfänger-Themen 29
R String einlesen, Textdatei danach durchsuchen und aus Zeile Objekt erzeugen Java Basics - Anfänger-Themen 5
O Sämtliche Textdateiformat durchsuchen Java Basics - Anfänger-Themen 2
O Performant große Dateien durchsuchen Java Basics - Anfänger-Themen 8
X regex frage (durchsuchen) Java Basics - Anfänger-Themen 2
N Fragen zu String durchsuchen und verarbeiten Java Basics - Anfänger-Themen 23
N Array durchsuchen Java Basics - Anfänger-Themen 7
S Collection rückwärts durchsuchen Java Basics - Anfänger-Themen 4
J ArrayList nach Objekten durchsuchen Java Basics - Anfänger-Themen 2
S Sortierte LinkedList nach Variablen durchsuchen und nicht nach INDEX Java Basics - Anfänger-Themen 6
U ArrayList nach Zahlen durchsuchen? Java Basics - Anfänger-Themen 8
M Eclipse: Durchsuchen aller Dateien? Java Basics - Anfänger-Themen 1
M Ordner der jar Datei herausfinden und Partent durchsuchen Java Basics - Anfänger-Themen 4
A Verzeichnisse nach Datei / Ordner durchsuchen Java Basics - Anfänger-Themen 11
N Problem beim Durchsuchen einer LinkedList Java Basics - Anfänger-Themen 5
hdi Ornderübersicht (durchsuchen) für Öffnen/Speichern Java Basics - Anfänger-Themen 4
B Text nach Signalwörtern durchsuchen Java Basics - Anfänger-Themen 4
G String durchsuchen Java Basics - Anfänger-Themen 4
T treeSet durchsuchen Java Basics - Anfänger-Themen 2
K Bytearray durchsuchen! Java Basics - Anfänger-Themen 6
G String durchsuchen Java Basics - Anfänger-Themen 14
S Arraylist durchsuchen und werte speichern Java Basics - Anfänger-Themen 14
M String durchsuchen Java Basics - Anfänger-Themen 2
T Ordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 2
G array (BigInteger) durchsuchen Java Basics - Anfänger-Themen 2
G ArrayList<String> durchsuchen Java Basics - Anfänger-Themen 8
S Inhalt von Array nach Zahl durchsuchen Java Basics - Anfänger-Themen 5
O Überladene Methode + durchsuchen der ArrayList Java Basics - Anfänger-Themen 14
M Sortierte Liste nach Wert durchsuchen Java Basics - Anfänger-Themen 8
J Hashmap durchsuchen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben