Class StreamCompressor

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public abstract class StreamCompressor
    extends java.lang.Object
    implements java.io.Closeable
    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
    • Method Detail

      • create

        public static StreamCompressor create​(int compressionLevel,
                                              ScatterGatherBackingStore bs)
        Create a stream compressor with the given compression level.
        Parameters:
        compressionLevel - The Deflater compression level
        bs - 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 compress
        method - The #ZipArchiveEntry compression method
        Throws:
        java.io.IOException - When failures happen
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.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