2017-08-15 1 views
0

Ich habe eine Binärdatei mit Erweiterung .ats und ich soll es in Byte-Array konvertieren. Nachdem die Datei in den Bytestrom konvertiert wurde, sollte ich einige Bytes überspringen. Die Datei ist in WINDOWS-1255 codiert.Umwandlung einer Binärdatei mit Erweiterung .ats in Byte-Array

Ist unten Snippet korrekte Möglichkeit, es in Byte-Stream zu konvertieren?

Path path = Paths.get(fileName); byte[] buffer = new byte[SIZE]; buffer = Files.readAllBytes(path);

Antwort

1

Es gibt keine Notwendigkeit, Strom zu öffnen, wie Files.readAllBytes(Path) alles durch die effizienteste Art und Weise tun.

byte[] bytes = Files.readAllBytes(Paths.get(fileName)); 

Edit::

Lesen Bytes einer Datei kann wie dies getan werden

Das Array übergeben ByteArrayInputStream Konstruktor werden, um den Strom zu erhalten:

new ByteArrayInputStream(bytes); 
+0

Vielen Dank . Ich habe den Eingangsstromteil entfernt. Da die Datei die WINDOWS-1255-Codierung verwendet, hat sie Auswirkungen auf die Art und Weise, wie Bytes interpretiert werden sollten. Ich bekomme ein Dokument, das besagt, dass die ersten zwei Bytes des Headers Informationen über die Header-Länge enthalten. Bedeutet es einfach, dass ich die ersten zwei Bytes des Byte-Arrays lesen sollte, um die Header-Länge zu erhalten. Ich versuche, Daten aus einer Datei basierend auf einem Dokument zu extrahieren. Meine Fragen können primitiv sein, aber ich bin nicht in der Lage, korrekte Daten zu extrahieren. – user3065525

+0

Ja, Sie können Bytes byteArrayInputStream einfach mit der Methode read (byte [] b, int off, int len) lesen. – glf4k