Class FramedSnappyCompressorOutputStream

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

    public class FramedSnappyCompressorOutputStream
    extends CompressorOutputStream
    CompressorOutputStream for the framing Snappy format.

    Based on the "spec" in the version "Last revised: 2013-10-25"

    Since:
    1.14
    See Also:
    Snappy framing format description
    • Field Detail

      • MAX_COMPRESSED_BUFFER_SIZE

        private static final int MAX_COMPRESSED_BUFFER_SIZE
        See Also:
        Constant Field Values
      • out

        private final java.io.OutputStream out
      • oneByte

        private final byte[] oneByte
      • buffer

        private final byte[] buffer
      • currentIndex

        private int currentIndex
    • Constructor Detail

      • FramedSnappyCompressorOutputStream

        public FramedSnappyCompressorOutputStream​(java.io.OutputStream out)
                                           throws java.io.IOException
        Constructs a new output stream that compresses snappy-framed-compressed data to the specified output stream.
        Parameters:
        out - the OutputStream to which to write the compressed data
        Throws:
        java.io.IOException - if writing the signature fails
      • FramedSnappyCompressorOutputStream

        public FramedSnappyCompressorOutputStream​(java.io.OutputStream out,
                                                  Parameters params)
                                           throws java.io.IOException
        Constructs a new output stream that compresses snappy-framed-compressed data to the specified output stream.
        Parameters:
        out - the OutputStream to which to write the compressed data
        params - parameters used to fine-tune compression, in particular to balance compression ratio vs compression speed.
        Throws:
        java.io.IOException - if writing the signature fails
    • Method Detail

      • write

        public void write​(int b)
                   throws java.io.IOException
        Specified by:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] data,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • 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.OutputStream
        Throws:
        java.io.IOException
      • finish

        public void finish()
                    throws java.io.IOException
        Compresses all remaining data and writes it to the stream, doesn't close the underlying stream.
        Throws:
        java.io.IOException - if an error occurs
      • flushBuffer

        private void flushBuffer()
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeLittleEndian

        private void writeLittleEndian​(int numBytes,
                                       long num)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeCrc

        private void writeCrc()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • mask

        static long mask​(long x)