Class BrotliInputStream

java.lang.Object
java.io.InputStream
org.brotli.dec.BrotliInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class BrotliInputStream extends InputStream
InputStream decorator that decompresses brotli data.

Not thread-safe.

  • Field Details

    • DEFAULT_INTERNAL_BUFFER_SIZE

      public static final int DEFAULT_INTERNAL_BUFFER_SIZE
      See Also:
    • END_OF_STREAM_MARKER

      private static final int END_OF_STREAM_MARKER
      Value expected by InputStream contract when stream is over. In Java it is -1. In C# it is 0 (should be patched during transpilation).
      See Also:
    • buffer

      private byte[] buffer
      Internal buffer used for efficient byte-by-byte reading.
    • remainingBufferBytes

      private int remainingBufferBytes
      Number of decoded but still unused bytes in internal buffer.
    • bufferOffset

      private int bufferOffset
      Next unused byte offset.
    • state

      private final State state
      Decoder state.
  • Constructor Details

    • BrotliInputStream

      public BrotliInputStream(InputStream source) throws IOException
      Creates a InputStream wrapper that decompresses brotli data.

      For byte-by-byte reading (read()) internal buffer with DEFAULT_INTERNAL_BUFFER_SIZE size is allocated and used.

      Will block the thread until first BitReader.CAPACITY bytes of data of source are available.

      Parameters:
      source - underlying data source
      Throws:
      IOException - in case of corrupted data or source stream problems
    • BrotliInputStream

      public BrotliInputStream(InputStream source, int byteReadBufferSize) throws IOException
      Creates a InputStream wrapper that decompresses brotli data.

      For byte-by-byte reading (read()) internal buffer of specified size is allocated and used.

      Will block the thread until first BitReader.CAPACITY bytes of data of source are available.

      Parameters:
      source - compressed data source
      byteReadBufferSize - size of internal buffer used in case of byte-by-byte reading
      Throws:
      IOException - in case of corrupted data or source stream problems
  • Method Details