org.apache.commons.compress.compressors.snappy

## Class SnappyCompressorInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.commons.compress.compressors.CompressorInputStream
    - - org.apache.commons.compress.compressors.lz77support.AbstractLZ77CompressorInputStream
      - - org.apache.commons.compress.compressors.snappy.SnappyCompressorInputStream

- All Implemented Interfaces:
    Closeable, AutoCloseable, InputStreamStatistics

      public class SnappyCompressorInputStream
      extends AbstractLZ77CompressorInputStream

  CompressorInputStream for the raw Snappy format.

  This implementation uses an internal buffer in order to handle the back-references that are at the heart of the LZ77 algorithm. The size of the buffer must be at least as big as the biggest offset used in the compressed stream. The current version of the Snappy algorithm as defined by Google works on 32k blocks and doesn't contain offsets bigger than 32k which is the default block size used by this class.

  Since:
    1.7
  See Also:
    Snappy compressed format description

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_BLOCK_SIZE` Default block size

    - ### Fields inherited from class org.apache.commons.compress.compressors.lz77support.AbstractLZ77CompressorInputStream

      `supplier`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SnappyCompressorInputStream(InputStream is)` Constructor using the default buffer size of 32k.
    `SnappyCompressorInputStream(InputStream is, int blockSize)` Constructor using a configurable buffer size.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getSize()` Get the uncompressed size of the stream
    `int` | `read(byte[] b, int off, int len)`

    - ### Methods inherited from class org.apache.commons.compress.compressors.lz77support.AbstractLZ77CompressorInputStream

      `available, close, getCompressedCount, hasMoreDataInBlock, prefill, read, readBackReference, readLiteral, readOneByte, startBackReference, startLiteral`

    - ### Methods inherited from class org.apache.commons.compress.compressors.CompressorInputStream

      `count, count, getBytesRead, getCount, getUncompressedCount, pushedBackBytes`

    - ### Methods inherited from class java.io.InputStream

      `mark, markSupported, read, reset, skip`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.commons.compress.utils.InputStreamStatistics

      `getUncompressedCount`

- - ### Field Detail

    - #### DEFAULT_BLOCK_SIZE

          public static final int DEFAULT_BLOCK_SIZE

      Default block size
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SnappyCompressorInputStream

          public SnappyCompressorInputStream(InputStream is)
                                      throws IOException

      Constructor using the default buffer size of 32k.
      Parameters:
        `is` - An InputStream to read compressed data from
      Throws:
        `IOException` - if reading fails

    - #### SnappyCompressorInputStream

          public SnappyCompressorInputStream(InputStream is,
                                             int blockSize)
                                      throws IOException

      Constructor using a configurable buffer size.
      Parameters:
        `is` - An InputStream to read compressed data from
        `blockSize` - The block size used in compression
      Throws:
        `IOException` - if reading fails
        `IllegalArgumentException` - if blockSize is not bigger than 0

  - ### Method Detail

    - #### read

          public int read(byte[] b,
                          int off,
                          int len)
                   throws IOException

      Overrides:
        `read` in class `InputStream`
      Throws:
        `IOException`

    - #### getSize

          public int getSize()

      Get the uncompressed size of the stream
      Overrides:
        `getSize` in class `AbstractLZ77CompressorInputStream`
      Returns:
        the uncompressed size

Copyright © 2002–2020 The Apache Software Foundation. All rights reserved.