Bytes vom Ende der Datei lesen

zerix

Hausmeister
Moderator
Ich stehe mal wieder auf dem Schlauch. :) Ich möchte bei einer Datei die letzten 5 Bytes auslesen und hab keine ahnung wie ich das machen soll. Kann mir da einer helfen
 
Hi

also ich habe keine Erfahrung mit Java, weiß daher nicht, welche IO-Möglichkeiten Du hast. Im Prinzip könnte es so gehen
Variante A
Dategröße ermitteln
Datensatzzeiger auf Dateiposition (=Dateigröße minus 5) setzen
Daten lesen

Variante B
Wesentlich uneleganter
In einer Schleife alle Daten in einen Puffer lesen, bis Dateiende erreicht
Aus dem Puffer die letzten 5 Bytes nehmen

Ich würde Variante A vorziehen, wenn die Dateien größer sind. Bei kleinen Dateien mag auch Variante B sinnvoll sein.

vop
 
Hallo!

Code:
 package de.tutorials;
 
 import java.io.RandomAccessFile;
 
 public class RandomAccessExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) throws Exception {
 		RandomAccessFile randomAccessFile = new RandomAccessFile(
 				"c:/Sonnenuntergang.jpg", "r");
 		long length = randomAccessFile.length();
 		randomAccessFile.seek(length - 5);
 		byte[] buffer = new byte[5];
 		randomAccessFile.read(buffer);
 		for (int i = 0; i < buffer.length; i++) {
 			System.out.println(buffer[i]);
 		}
 
 	}
 }
gruß Tom
 
Dann ist mit Variante A meine nächste Frage verbunden. Kann ich ne binäre Datei als RandomAccessFile öffenen
 
Danke Tom, warst ein bischen schneller als ich mit der Frage :)
Ich hatte schon mal an RandomAccessfile gedacht, aber ich dachte nicht dass es geht, hab es also auch nicht ausprobiert :)

Hätte ich mal besser getan!

Danke!

MFG zEriX
 
Zurück