编辑:我真的只需要知道Deflater派生类何时决定写入页眉和页脚数据,以及如何利用这些事实。我真的很想做以下事情:
原始问:我正在使用Java DeflaterOutputStream压缩一些数据。我还通过修改页眉和页脚来修改此压缩数据。我想给DeflaterOutputStream一些输入,让它仅输出压缩数据部分,而不输出gzip格式的页眉或页脚。我该怎么办?
到目前为止,我一直在尝试做这样的事情:
internalWriter.write(storage, 0, amountRead);
internalWriter.finish();
internalWriter.getDef().reset();
internalWriter是DeflaterOutputStream的扩展。这将输出带有页眉和页脚的压缩数据。但是,在随后的具有相同对象的调用中,它将输出压缩数据和页脚。我基本上只希望压缩的数据,或者每次都可能发生相同的事情。有任何想法吗?对压缩流如何使用close,flush,finish进行快速说明,也可能对我有所帮助,重点放在创建和输出页眉和页脚的时间。
每次我使用DeflaterOutputStream时,我都希望它立即输出所有内容。这就是为什么我如右图所示在右侧之后完成终点...
最佳答案
请参阅deflater(sic)文档。如果nowrap
为true,则不生成头文件或尾文件-deflate format中仅原始压缩数据。