Class StreamCompressor
java.lang.Object
org.apache.commons.compress.archivers.zip.StreamCompressor
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
StreamCompressor.DataOutputCompressor,StreamCompressor.OutputStreamCompressor,StreamCompressor.ScatterGatherBackingStoreCompressor,StreamCompressor.SeekableByteChannelCompressor
Encapsulates a
Deflater and crc calculator, handling multiple types of output streams.
Currently ZipEntry.DEFLATED and ZipEntry.STORED are the only
supported compression methods.- Since:
- 1.10
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classprivate static final classprivate static final classprivate static final class -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()static StreamCompressorcreate(int compressionLevel, ScatterGatherBackingStore bs) Create a stream compressor with the given compression level.(package private) static StreamCompressorcreate(DataOutput os, Deflater deflater) Create a stream compressor with the given compression level.(package private) static StreamCompressorcreate(OutputStream os) Create a stream compressor with the default compression level.(package private) static StreamCompressorcreate(OutputStream os, Deflater deflater) Create a stream compressor with the given compression level.(package private) static StreamCompressorcreate(SeekableByteChannel os, Deflater deflater) Create a stream compressor with the given compression level.static StreamCompressorCreate a stream compressor with the default compression level.(package private) voiddeflate()voiddeflate(InputStream source, int method) Deflate the given source using the supplied compression methodprivate void(package private) voidlongReturn the number of bytes read from the source streamlongThe number of bytes written to the output for the last entrylonggetCrc32()The crc32 of the last deflated filelongThe total number of bytes written to the output for all files(package private) voidreset()(package private) longwrite(byte[] b, int offset, int length, int method) Writes bytes to ZIP entry.voidwriteCounted(byte[] data) voidwriteCounted(byte[] data, int offset, int length) private voidwriteDeflated(byte[] b, int offset, int length) protected abstract voidwriteOut(byte[] data, int offset, int length)
-
Field Details
-
DEFLATER_BLOCK_SIZE
private static final int DEFLATER_BLOCK_SIZE- See Also:
-
def
-
crc
-
writtenToOutputStreamForLastEntry
private long writtenToOutputStreamForLastEntry -
sourcePayloadLength
private long sourcePayloadLength -
totalWrittenToOutputStream
private long totalWrittenToOutputStream -
BUFFER_SIZE
private static final int BUFFER_SIZE- See Also:
-
outputBuffer
private final byte[] outputBuffer -
readerBuf
private final byte[] readerBuf
-
-
Constructor Details
-
StreamCompressor
StreamCompressor(Deflater deflater)
-
-
Method Details
-
create
Create a stream compressor with the given compression level.- Parameters:
os- The stream to receive outputdeflater- The deflater to use- Returns:
- A stream compressor
-
create
Create a stream compressor with the default compression level.- Parameters:
os- The stream to receive output- Returns:
- A stream compressor
-
create
Create a stream compressor with the given compression level.- Parameters:
os- The DataOutput to receive outputdeflater- The deflater to use for the compressor- Returns:
- A stream compressor
-
create
Create a stream compressor with the given compression level.- Parameters:
os- The SeekableByteChannel to receive outputdeflater- The deflater to use for the compressor- Returns:
- A stream compressor
- Since:
- 1.13
-
create
Create a stream compressor with the given compression level.- Parameters:
compressionLevel- TheDeflatercompression levelbs- The ScatterGatherBackingStore to receive output- Returns:
- A stream compressor
-
create
Create a stream compressor with the default compression level.- Parameters:
bs- The ScatterGatherBackingStore to receive output- Returns:
- A stream compressor
-
getCrc32
public long getCrc32()The crc32 of the last deflated file- Returns:
- the crc32
-
getBytesRead
public long getBytesRead()Return the number of bytes read from the source stream- Returns:
- The number of bytes read, never negative
-
getBytesWrittenForLastEntry
public long getBytesWrittenForLastEntry()The number of bytes written to the output for the last entry- Returns:
- The number of bytes, never negative
-
getTotalBytesWritten
public long getTotalBytesWritten()The total number of bytes written to the output for all files- Returns:
- The number of bytes, never negative
-
deflate
Deflate the given source using the supplied compression method- Parameters:
source- The source to compressmethod- The #ZipArchiveEntry compression method- Throws:
IOException- When failures happen
-
write
Writes bytes to ZIP entry.- Parameters:
b- the byte array to writeoffset- the start position to write fromlength- the number of bytes to writemethod- the comrpession method to use- Returns:
- the number of bytes written to the stream this time
- Throws:
IOException- on error
-
reset
void reset() -
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
flushDeflater
- Throws:
IOException
-
writeDeflated
- Throws:
IOException
-
deflateUntilInputIsNeeded
- Throws:
IOException
-
deflate
- Throws:
IOException
-
writeCounted
- Throws:
IOException
-
writeCounted
- Throws:
IOException
-
writeOut
- Throws:
IOException
-