Class BufferedLineReaderInputStream

All Implemented Interfaces:
Closeable, AutoCloseable

public class BufferedLineReaderInputStream extends LineReaderInputStream
Input buffer that can be used to search for patterns using Quick Search algorithm in data read from an InputStream.
  • Field Details

    • _recyclerRef

      protected static final ThreadLocal<SoftReference<BufferRecycler>> _recyclerRef
    • truncated

      private boolean truncated
    • tempBuffer

      boolean tempBuffer
    • origBuffer

      private byte[] origBuffer
    • origBufpos

      private int origBufpos
    • origBuflen

      private int origBuflen
    • buffer

      private byte[] buffer
    • bufpos

      private int bufpos
    • buflen

      private int buflen
    • shiftTable

      private int[] shiftTable
    • maxLineLen

      private final int maxLineLen
  • Constructor Details

    • BufferedLineReaderInputStream

      public BufferedLineReaderInputStream(InputStream instream, int buffersize, int maxLineLen)
    • BufferedLineReaderInputStream

      public BufferedLineReaderInputStream(InputStream instream, int buffersize)
  • Method Details

    • getBufferRecycler

      public static BufferRecycler getBufferRecycler()
    • expand

      private void expand(int newlen)
    • ensureCapacity

      public void ensureCapacity(int len)
    • fillBuffer

      public int fillBuffer() throws IOException
      Throws:
      IOException
    • bufferLen

      private int bufferLen()
    • hasBufferedData

      public boolean hasBufferedData()
    • truncate

      public void truncate()
    • release

      public void release()
    • readAllowed

      protected boolean readAllowed()
    • read

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

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

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

      public boolean markSupported()
      Overrides:
      markSupported in class FilterInputStream
    • readLine

      public int readLine(ByteArrayBuffer dst) throws MaxLineLimitException, IOException
      Description copied from class: LineReaderInputStream
      Reads one line of text into the given ByteArrayBuffer.
      Specified by:
      readLine in class LineReaderInputStream
      Parameters:
      dst - Destination
      Returns:
      number of bytes copied or -1 if the end of the stream has been reached.
      Throws:
      MaxLineLimitException - if the line exceeds a limit on the line length imposed by a subclass.
      IOException - in case of an I/O error.
    • indexOf

      public int indexOf(byte[] pattern, int off, int len)
      Implements quick search algorithm as published by

      SUNDAY D.M., 1990, A very fast substring search algorithm, Communications of the ACM . 33(8):132-142.

    • indexOf

      public int indexOf(byte[] pattern)
      Implements quick search algorithm as published by

      SUNDAY D.M., 1990, A very fast substring search algorithm, Communications of the ACM . 33(8):132-142.

    • indexOf

      public int indexOf(byte b, int off, int len)
    • indexOf

      public int indexOf(byte b)
    • byteAt

      public int byteAt(int pos)
    • buf

      protected byte[] buf()
    • pos

      protected int pos()
    • limit

      protected int limit()
    • length

      protected int length()
    • capacity

      public int capacity()
    • skip

      protected int skip(int n)
    • clear

      private void clear()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • unread

      public boolean unread(ByteArrayBuffer buf)
      Description copied from class: LineReaderInputStream
      Tries to unread the last read line. Implementation may refuse to unread a new buffer until the previous unread one has been competely consumed. Implementations will directly use the byte array backed by buf, so make sure to not alter it anymore once this method has been called.
      Specified by:
      unread in class LineReaderInputStream
      Returns:
      true if the unread has been succesfull.
    • unread

      public boolean unread(RecycledByteArrayBuffer buf)
      Specified by:
      unread in class LineReaderInputStream