Wie wird roher Byte-Inhalt von einem byte [] -Array in stdout in Java ausgegeben?

8

Ich mache das gleiche Projekt wie hier beschrieben:

Deflationierte Daten im gzip-Format umwandeln

Mein Problem ist, dass wenn ich versuche, Bytes auszudrucken, ich seltsame Ergebnisse bekomme. Meine Probleme treten im folgenden Code auf (Entschuldigung für meine schlechte Wahl der Variablen):

%Vor%

Die letzten zwei for-Schleifen geben den Inhalt ihrer Byte-Arrays nicht aus. So bekomme ich einen unerwarteten Dateiende Fehler wenn ich gzip benutze. Das Seltsame ist, dass wenn ich den zweiten For-Loop-Block (den Block mit den Variablen m und ii) auskommentiere, nichts ausgedruckt wird.

Wie drucke ich den Inhalt meiner Byte-Arrays richtig aus? Warum wird die erste for-Schleife korrekt ausgedruckt, wenn die zweite for-Schleife nicht kommentiert ist und warum wird nichts gedruckt, wenn diese zweite for-Schleife kommentiert ist?

BEARBEITEN:

Um genauer zu sein:

Ich möchte die rohen Bytes ausschreiben. Und ich möchte es so machen, dass es für jedes meiner Byte-Arrays direkt hintereinander ist

    
XCBaller 23.12.2012, 08:41
quelle

2 Antworten

36

Angenommen, Ihr Byte-Array heißt buf :

%Vor%

Bearbeiten: Es klingt wie das, was Sie wirklich tun möchten, ist, Ihre Bytes auf stdout zu schreiben, sie nicht zu drucken. Siehe Ссылка für den Unterschied zwischen dem Drucken in einen Stream und dem Schreiben darauf . Am einfachsten wäre es, die write (byte [] b) -Methode aufzurufen:

%Vor%     
Gustav Grusell 23.12.2012 08:45
quelle
-1
%Vor%

/ * hier zeige ich die Rohdaten nicht im hexadezimalen Format * /

%Vor%

Ich denke, das wird euch helfen!

    
Manoj Behera 19.01.2015 06:34
quelle

Tags und Links