Class StreamCompressor
- java.lang.Object
-
- org.apache.commons.compress.archivers.zip.StreamCompressor
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public abstract class StreamCompressor extends java.lang.Object implements java.io.Closeable
Encapsulates aDeflater
and crc calculator, handling multiple types of output streams. CurrentlyZipEntry.DEFLATED
andZipEntry.STORED
are the only supported compression methods.- Since:
- 1.10
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
static StreamCompressor
create(int compressionLevel, ScatterGatherBackingStore bs)
Create a stream compressor with the given compression level.static StreamCompressor
create(ScatterGatherBackingStore bs)
Create a stream compressor with the default compression level.void
deflate(java.io.InputStream source, int method)
Deflate the given source using the supplied compression methodlong
getBytesRead()
Return the number of bytes read from the source streamlong
getBytesWrittenForLastEntry()
The number of bytes written to the output for the last entrylong
getCrc32()
The crc32 of the last deflated filelong
getTotalBytesWritten()
The total number of bytes written to the output for all filesvoid
writeCounted(byte[] data)
void
writeCounted(byte[] data, int offset, int length)
-
-
-
Method Detail
-
create
public static StreamCompressor create(int compressionLevel, ScatterGatherBackingStore bs)
Create a stream compressor with the given compression level.- Parameters:
compressionLevel
- TheDeflater
compression levelbs
- The ScatterGatherBackingStore to receive output- Returns:
- A stream compressor
-
create
public static StreamCompressor create(ScatterGatherBackingStore bs)
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
public void deflate(java.io.InputStream source, int method) throws java.io.IOException
Deflate the given source using the supplied compression method- Parameters:
source
- The source to compressmethod
- The #ZipArchiveEntry compression method- Throws:
java.io.IOException
- When failures happen
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
writeCounted
public void writeCounted(byte[] data) throws java.io.IOException
- Throws:
java.io.IOException
-
writeCounted
public void writeCounted(byte[] data, int offset, int length) throws java.io.IOException
- Throws:
java.io.IOException
-
-