Performance Dateizugriff (Stream vs RandomAcc)!?

Hallo,

wer hat konkrete Praxiserfahrungen oder Hintergrundwissen zur Performance von Dateizugriffen! Es gibt ja entweder „Streambasierten“ oder RandomAccess basierten Zugriff.
Bei derm RandomAccess kann ich ja auf beliebige Positionen zugreifen, während bei einem StreamZugriff wohl nur die Datei von vorne gelesen wird, oder? Kann das jemand dementieren oder bestätigen!?

Mein Problem ist, dass ich von einer beiinahe hundert MB grossen Logdatei regelmäßig die neuen Einträge einlesen muss. Was macht mehr hier Performancetechnisch mehr Sinn. Der Zugirff per Random Access oder per Stream.
Wenn der Stream die DAtei jedesmal von ganz vorne liest dann wäre das sehr viel unnötiger Overhead da ich letztendlich immer nur das Ende brauche (Die große Frage ist, wie funktioniert der Streamzugriff genau, kann man da auch nur den Schluss einlesen und wie wird dann das Überspringen des Anfangs seitesn Java durchgeführt. Werden dabei die Daten auch wirklich nur „überflogen“ und nicht gelesen??)

Nachdem das Arbeiten mit Streams ja sehr komfortabel ist würde ich einen StreamZugriff einem RandomAccess eigentlich eher vorziehen.

Vielen Dank für Tips/Meinungen/Links
Julian

Moin

wer hat konkrete Praxiserfahrungen oder Hintergrundwissen zur
Performance von Dateizugriffen!

Vorneweg: Wenn du kannst: benutz java.nio. Es lohnt sich.

Bei derm RandomAccess kann ich ja auf beliebige Positionen
zugreifen, während bei einem StreamZugriff wohl nur die Datei
von vorne gelesen wird, oder?

Im Prinzip stimmt das so.

Was macht mehr hier Performancetechnisch mehr Sinn. Der
Zugirff per Random Access oder per Stream.

Stream und die Methode : skip(datenlänge)

wie wird dann das Überspringen des
Anfangs seitesn Java durchgeführt.

java gibt den Befehl „skip“ an den darunter liegenden nativ-Stream weiter. Je nach Plattenorga/formatierung springt der Stream direkt an die Stelle oder es werden noch ein bisschen Kontrolldaten (FAT32) eingelesen. Die Kontrolldaten werden aber auch bei RandomAcc gelesen, man hat also keinen Vorteil durch RandomAcc.

Vergiss die Buffers nicht ! (10-25x schneller als normale FileStreams)

cu

Danke
Hallo,

vielen DAnk für deine Antwort!

Julian