コモンズ圧縮を使用してメモリ内のデータを bzip2 しようとしています。私はこれを試しています:
private static final int bufferSize = 8192;
public void compress(
ByteArrayInputStream byteArrayInputStream,
CompressorOutputStream compressorOutputStream) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
final byte[] buffer = new byte[bufferSize];
int n = 0;
while (-1 != (n = byteArrayInputStream.read(buffer)))
compressorOutputStream.write(buffer, 0, n);
}
public byte[] compressBZIP2(byte[] inputBytes) throws Exception {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(inputBytes);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
BZip2CompressorOutputStream bZip2CompressorOutputStream = new BZip2CompressorOutputStream(byteArrayOutputStream);
compress(byteArrayInputStream, bZip2CompressorOutputStream);
return byteArrayOutputStream.toByteArray();
}
しかし、これはうまくいきません、
byte[] bzipCompressed = resultCompressor.compressBZIP2(contentBytes);
すべての結果は常に 3 バイトであり、それだけです。私は何を間違っていますか?