Class SelfExpandingBufferredInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.BufferedInputStream
org.jboss.resteasy.client.core.SelfExpandingBufferredInputStream
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
ApacheHttpClient4Executor.ResponseStream

public class SelfExpandingBufferredInputStream extends BufferedInputStream
Extension of BufferedInputStream enforcing the contract where reset() always returns to the beginning of the stream, and the internal buffer expands automatically to the total length of content read from the underlying stream.
  • Field Details

    • defaultBufferSize

      private static int defaultBufferSize
  • Constructor Details

    • SelfExpandingBufferredInputStream

      public SelfExpandingBufferredInputStream(InputStream in)
    • SelfExpandingBufferredInputStream

      public SelfExpandingBufferredInputStream(InputStream in, int size)
  • Method Details

    • mark

      public void mark(int readlimit)
      Not supported. Mark position is always zero.
      Overrides:
      mark in class BufferedInputStream
    • read

      public int read() throws IOException
      Overrides:
      read in class BufferedInputStream
      Throws:
      IOException
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Overrides:
      read in class BufferedInputStream
      Throws:
      IOException
    • read

      public int read(byte[] b) throws IOException
      Overrides:
      read in class FilterInputStream
      Throws:
      IOException
    • expand

      private void expand() throws IOException
      Double the current buffer size limit. Reset to zero, then double the buffer size and restore last position in the buffer.
      Throws:
      IOException
    • getBufSize

      public int getBufSize()
      Return the current maximum size of the internal buffer. This is independent of how much data is actually contained within the buffer.
    • getCount

      public int getCount()
    • getPos

      public int getPos()
    • getMarkLimit

      public int getMarkLimit()
    • getMarkPos

      public int getMarkPos()