Tôi đang làm dự án tương tự như mô tả ở đây:Làm thế nào để in nội dung byte thô từ một mảng byte [] thành stdout trong Java?
Wrap deflated data in gzip format
Vấn đề của tôi là khi tôi cố gắng để in ra byte, tôi nhận được kết quả kỳ lạ. vấn đề của tôi xảy ra trong đoạn mã sau (Xin lỗi cho sự lựa chọn xấu của tôi của các biến):
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]);
}
cuối cùng hai cho-vòng không in ra nội dung của các mảng byte của họ. Vì vậy, tôi nhận được một kết thúc bất ngờ của lỗi tập tin khi sử dụng gzip. Điều kỳ lạ là nếu tôi nhận xét khối thứ hai cho vòng lặp (khối với các biến m và ii), không có gì được in ra.
Vậy làm cách nào để in chính xác nội dung của các mảng byte của tôi? Tại sao vòng lặp đầu tiên in ra đúng khi vòng lặp thứ hai không được nhận xét và tại sao nó không in bất cứ thứ gì nếu vòng lặp thứ hai đó được nhận xét?
EDIT:
Để cụ thể hơn:
Tôi muốn viết ra các byte thô. Và tôi muốn làm điều đó để nó là ngay sau khi nhau cho mỗi một trong những mảng byte của tôi
Nếu bạn sử dụng System.out.write, bạn có thể cần xóa luồng đầu ra bằng cách viết ký tự '\ n' ở cuối mã của bạn. – codebox