Class SnappyFramedOutputStream

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public final class SnappyFramedOutputStream extends AbstractSnappyOutputStream
Implements the x-snappy-framed as an OutputStream.
  • Field Details

    • MAX_BLOCK_SIZE

      public static final int MAX_BLOCK_SIZE
      We place an additional restriction that the uncompressed data in a chunk must be no longer than 65536 bytes. This allows consumers to easily use small fixed-size buffers.
      See Also:
    • DEFAULT_BLOCK_SIZE

      public static final int DEFAULT_BLOCK_SIZE
      See Also:
    • DEFAULT_MIN_COMPRESSION_RATIO

      public static final double DEFAULT_MIN_COMPRESSION_RATIO
      See Also:
  • Constructor Details

  • Method Details

    • writeHeader

      protected void writeHeader(OutputStream out) throws IOException
      Description copied from class: AbstractSnappyOutputStream
      Writes the implementation specific header or "marker bytes" to out.
      Specified by:
      writeHeader in class AbstractSnappyOutputStream
      Parameters:
      out - The underlying OutputStream.
      Throws:
      IOException
    • writeBlock

      protected void writeBlock(OutputStream out, byte[] data, int offset, int length, boolean compressed, int crc32c) throws IOException
      Each chunk consists first a single byte of chunk identifier, then a three-byte little-endian length of the chunk in bytes (from 0 to 16777215, inclusive), and then the data if any. The four bytes of chunk header is not counted in the data length.
      Specified by:
      writeBlock in class AbstractSnappyOutputStream
      Parameters:
      out - The OutputStream to write to.
      data - The data to write.
      offset - The offset in data to start at.
      length - The length of data to use.
      compressed - Indicates if data is the compressed or raw content. This is based on whether the compression ratio desired is reached.
      crc32c - The calculated checksum.
      Throws:
      IOException