我使用
从输入流打印一个块int skip = in.skip(1024); //skip first 1024b
int end = in.available(); // remaining size in b
for (int i = skip; i < end; i++) {
//prints chunk of data from in-stream from skip till end
System.out.println(in.read());
}
而不是从头到尾打印,我想压缩跳到头之间的字节(in.read()) 有人可以帮我先压缩然后解压缩相同的
我试过这个
FileOutputStream fos = new FileOutputStream(ChunkZipName);
GZIPOutputStream chunkZipper = new GZIPOutputStream (fos);
for (int i = skip; i < end; i++) {
chunkZipper.write(in.read()); }
但它只写10bytes ..剩余字节r跳过...这是GZIPOutputStream的正确用法???
答案 0 :(得分:3)
只需将GZIPOutputStream
/ GZIPInputStream
包裹在您的真实流中。
out = new GZIPOutputStream (out);
<强>顺便说一句:强>
如果你想真正跳过1024个字节,你必须检查 skip
的返回值并重复剩余的字节,因为在某些情况下(缓冲区),该方法不会完全跳过期望的位置。