Class FramedSnappyCompressorOutputStream

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

    public class FramedSnappyCompressorOutputStream
    extends CompressorOutputStream<java.io.OutputStream>
    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
    • Constructor Summary

      Constructors 
      Constructor Description
      FramedSnappyCompressorOutputStream​(java.io.OutputStream out)
      Constructs a new output stream that compresses snappy-framed-compressed data to the specified output stream.
      FramedSnappyCompressorOutputStream​(java.io.OutputStream out, Parameters params)
      Constructs a new output stream that compresses snappy-framed-compressed data to the specified output stream.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void finish()
      Compresses all remaining data and writes it to the stream, doesn't close the underlying stream.
      private void flushBuffer()  
      (package private) static long mask​(long x)  
      void write​(byte[] data, int off, int len)  
      void write​(int b)  
      private void writeCrc()  
      private void writeLittleEndian​(int numBytes, long num)  
      • Methods inherited from class java.io.FilterOutputStream

        flush, write
      • 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

      • MAX_COMPRESSED_BUFFER_SIZE

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

        private final org.apache.commons.codec.digest.PureJavaCrc32C checksum
      • 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

      • mask

        static long mask​(long x)
      • 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
      • 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
      • write

        public void write​(byte[] data,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

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

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

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