Class GzipCompressorOutputStream

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

    public class GzipCompressorOutputStream
    extends CompressorOutputStream<java.io.OutputStream>
    Compressed output stream using the gzip format. This implementation improves over the standard GZIPOutputStream class by allowing the configuration of the compression level and the header metadata (file name, comment, modification time, operating system and extra flags).
    See Also:
    RFC 1952 GZIP File Format Specification
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean closed
      Indicates if the stream has been closed
      private java.util.zip.CRC32 crc
      The checksum of the uncompressed data
      private byte[] deflateBuffer
      The buffer receiving the compressed data from the deflater
      private java.util.zip.Deflater deflater
      Deflater used to compress the data
      private static int FCOMMENT
      Header flag indicating a comment follows the header
      private static int FEXTRA
      Header flag indicating an EXTRA subfields collection follows the header
      private static int FNAME
      Header flag indicating a file name follows the header
      • Fields inherited from class java.io.FilterOutputStream

        out
    • Constructor Summary

      Constructors 
      Constructor Description
      GzipCompressorOutputStream​(java.io.OutputStream out)
      Creates a gzip compressed output stream with the default parameters.
      GzipCompressorOutputStream​(java.io.OutputStream out, GzipParameters parameters)
      Creates a gzip compressed output stream with the specified parameters.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      private void deflate()  
      void finish()
      Finishes writing compressed data to the underlying stream without closing it.
      void write​(byte[] buffer)
      void write​(byte[] buffer, int offset, int length)
      void write​(int b)  
      private void write​(java.lang.String value, java.nio.charset.Charset charset)
      Writes a NUL-terminated String encoded with the charset.
      private void writeHeader​(GzipParameters parameters)  
      private void writeTrailer()  
      • Methods inherited from class java.io.FilterOutputStream

        flush
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • FEXTRA

        private static final int FEXTRA
        Header flag indicating an EXTRA subfields collection follows the header
        See Also:
        Constant Field Values
      • FNAME

        private static final int FNAME
        Header flag indicating a file name follows the header
        See Also:
        Constant Field Values
      • FCOMMENT

        private static final int FCOMMENT
        Header flag indicating a comment follows the header
        See Also:
        Constant Field Values
      • deflater

        private final java.util.zip.Deflater deflater
        Deflater used to compress the data
      • deflateBuffer

        private final byte[] deflateBuffer
        The buffer receiving the compressed data from the deflater
      • closed

        private boolean closed
        Indicates if the stream has been closed
      • crc

        private final java.util.zip.CRC32 crc
        The checksum of the uncompressed data
    • Constructor Detail

      • GzipCompressorOutputStream

        public GzipCompressorOutputStream​(java.io.OutputStream out)
                                   throws java.io.IOException
        Creates a gzip compressed output stream with the default parameters.
        Parameters:
        out - the stream to compress to
        Throws:
        java.io.IOException - if writing fails
      • GzipCompressorOutputStream

        public GzipCompressorOutputStream​(java.io.OutputStream out,
                                          GzipParameters parameters)
                                   throws java.io.IOException
        Creates a gzip compressed output stream with the specified parameters.
        Parameters:
        out - the stream to compress to
        parameters - the parameters to use
        Throws:
        java.io.IOException - if writing fails
        Since:
        1.7
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • deflate

        private void deflate()
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • finish

        public void finish()
                    throws java.io.IOException
        Finishes writing compressed data to the underlying stream without closing it.
        Throws:
        java.io.IOException - on error
        Since:
        1.7
      • write

        public void write​(byte[] buffer)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
        Since:
        1.1
      • write

        public void write​(byte[] buffer,
                          int offset,
                          int length)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
        Since:
        1.1
      • write

        public void write​(int b)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

        private void write​(java.lang.String value,
                           java.nio.charset.Charset charset)
                    throws java.io.IOException
        Writes a NUL-terminated String encoded with the charset.
        Parameters:
        value - The String to write.
        charset - Specifies the Charset to use.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • writeHeader

        private void writeHeader​(GzipParameters parameters)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTrailer

        private void writeTrailer()
                           throws java.io.IOException
        Throws:
        java.io.IOException