ich das gleiche Projekt mache, wie beschreiben hier:Wie rohe Byte Inhalt von einem Byte [] Array zu stdout in Java zu drucken?
Wrap deflated data in gzip format
Mein Problem ist, dass wenn ich versuche, Bytes zu drucken, ich seltsame Ergebnisse. Meine Probleme treten in dem folgenden Code (Sorry für meine schlechte Wahl von Variablen):
for(int k = 0; k < head.length; k++){
System.out.write(head[k]);
}
for(int m = 0; m < a.size(); m++){
int comprlength = a.get(m).getclength();
for(int ii = 0; ii < comprlength; ii++){
System.out.write(a.get(m).getcompr()[ii]);
}
}
for(int j = 0; j < f1.length; j++){
System.out.write(f1[j]);
}
for(int ll = 0; ll < total_d.length; ll++){
System.out.write(total_d[ll]);
}
Die letzten zwei for-Schleifen aus dem Inhalt des ihrem Byte-Arrays wird nicht gedruckt. 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.
Also 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?
EDIT:
Um genauer zu sein:
Ich mag das rohe Bytes schreiben. Und ich will, es zu tun, so dass es richtig ist, nach einander für jede meiner Bytefeldgruppen
Wenn Sie System.out.write verwenden, müssen Sie möglicherweise den Ausgabestream leeren, indem Sie ein '\ n' Zeichen am Ende Ihres Codes schreiben. – codebox