首先一些代码:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
CBZip2OutputStream zos = new CBZip2OutputStream(bos);
provider.sendXMLFilelist(zos);
zos.flush();
bos.flush();
length = bos.size();
“提供者”将200个字节发送(让我们说)“ zos”。但是
length
是==1。我知道bzip很好,但是1个字节似乎少了一点。当我这样做时:
provider.sendXMLFilelist(bos);
比长度== 200。为什么CBZip2OutputStream不输出所有压缩字节?
我正在使用此实现:http://www.kohsuke.org/bzip2/
最佳答案
我想我现在有了答案。您必须.close()
bzip2流。 Bzip2是一个块编解码器,它不知道它是否必须填充数据或是否还有其他数据。
因此,通过告诉他关闭流,使他输出所有压缩数据。
关于java - BZIP-OutputStream问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4359415/