An output stream that compresses into the BZip2 format (without the file
header chars) into another stream.
The compression requires large amounts of memory. Thus you
should call the
CBZip2OutputStream.close() close() method as soon as
possible, to force CBZip2OutputStream to release the
allocated memory.
You can shrink the amount of allocated memory and maybe raise
the compression speed by choosing a lower blocksize, which in turn
may cause a lower compression ratio. You can avoid unnecessary
memory allocation by avoiding using a blocksize which is bigger
than the size of the input.
You can compute the memory usage for compressing by the
following formula:
400k + (9 * blocksize) .
To get the memory required for decompression by
CBZip2InputStream CBZip2InputStream use
65k + (5 * blocksize) .
Memory usage by blocksize |
Blocksize |
Compression memory usage |
Decompression memory usage |
100k |
1300k |
565k |
200k |
2200k |
1065k |
300k |
3100k |
1565k |
400k |
4000k |
2065k |
500k |
4900k |
2565k |
600k |
5800k |
3065k |
700k |
6700k |
3565k |
800k |
7600k |
4065k |
900k |
8500k |
4565k |
For decompression CBZip2InputStream allocates less
memory if the bzipped input is smaller than one block.
Instances of this class are not threadsafe.
TODO: Update to BZip2 1.0.1
|