以下是文档中的示例:
byte[] output = new byte[100];
Deflater compresser = new Deflater();
compresser.setInput(input);
compresser.finish();
int compressedDataLength = compresser.deflate(output);
compresser.end();
但DeflaterOutputStream
做的是这样的:
if (!def.finished()) {
def.setInput(b, off, len);
while (!def.needsInput()) {
int len = def.deflate(buf, 0, buf.length);
if (len > 0) {
out.write(buf, 0, len);
}
}
}
这让我认为,仅仅因为调用deflate()
得到了非零的返回并不意味着您的整个输入都被压缩了.
这样对吗?在文档中,我很难找到明确提到这一点的地方.