Class BufferedIndexInput

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Cloneable

    public abstract class BufferedIndexInput
    extends IndexInput
    Base implementation class for buffered IndexInput.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int BUFFER_SIZE
      Default buffer size set to 1024.
      static int MERGE_BUFFER_SIZE
      A buffer size for merges set to 4096.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static int bufferSize​(IOContext context)
      Returns default buffer sizes for the given IOContext
      BufferedIndexInput clone()
      Returns a clone of this stream.
      int getBufferSize()
      Returns buffer size.
      long getFilePointer()
      Returns the current position in this file, where the next read will occur.
      byte readByte()
      Reads and returns a single byte.
      void readBytes​(byte[] b, int offset, int len)
      Reads a specified number of bytes into an array at the specified offset.
      void readBytes​(byte[] b, int offset, int len, boolean useBuffer)
      Reads a specified number of bytes into an array at the specified offset with control over whether the read should be buffered (callers who have their own buffer should pass in "false" for useBuffer).
      int readInt()
      Reads four bytes and returns an int.
      long readLong()
      Reads eight bytes and returns a long.
      short readShort()
      Reads two bytes and returns a short.
      int readVInt()
      Reads an int stored in variable-length format.
      long readVLong()
      Reads a long stored in variable-length format.
      void seek​(long pos)
      Sets current position in this file, where the next read will occur.
      void setBufferSize​(int newSize)
      Change the buffer size used by this IndexInput
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • BUFFER_SIZE

        public static final int BUFFER_SIZE
        Default buffer size set to 1024.
        See Also:
        Constant Field Values
      • MERGE_BUFFER_SIZE

        public static final int MERGE_BUFFER_SIZE
        A buffer size for merges set to 4096.
        See Also:
        Constant Field Values
    • Constructor Detail

      • BufferedIndexInput

        public BufferedIndexInput​(java.lang.String resourceDesc)
      • BufferedIndexInput

        public BufferedIndexInput​(java.lang.String resourceDesc,
                                  IOContext context)
      • BufferedIndexInput

        public BufferedIndexInput​(java.lang.String resourceDesc,
                                  int bufferSize)
        Inits BufferedIndexInput with a specific bufferSize
    • Method Detail

      • setBufferSize

        public final void setBufferSize​(int newSize)
        Change the buffer size used by this IndexInput
      • getBufferSize

        public final int getBufferSize()
        Returns buffer size. @see #setBufferSize
      • readBytes

        public final void readBytes​(byte[] b,
                                    int offset,
                                    int len)
                             throws java.io.IOException
        Description copied from class: DataInput
        Reads a specified number of bytes into an array at the specified offset.
        Specified by:
        readBytes in class DataInput
        Parameters:
        b - the array to read bytes into
        offset - the offset in the array to start storing bytes
        len - the number of bytes to read
        Throws:
        java.io.IOException
        See Also:
        DataOutput.writeBytes(byte[],int)
      • readBytes

        public final void readBytes​(byte[] b,
                                    int offset,
                                    int len,
                                    boolean useBuffer)
                             throws java.io.IOException
        Description copied from class: DataInput
        Reads a specified number of bytes into an array at the specified offset with control over whether the read should be buffered (callers who have their own buffer should pass in "false" for useBuffer). Currently only BufferedIndexInput respects this parameter.
        Overrides:
        readBytes in class DataInput
        Parameters:
        b - the array to read bytes into
        offset - the offset in the array to start storing bytes
        len - the number of bytes to read
        useBuffer - set to false if the caller will handle buffering.
        Throws:
        java.io.IOException
        See Also:
        DataOutput.writeBytes(byte[],int)
      • readInt

        public final int readInt()
                          throws java.io.IOException
        Description copied from class: DataInput
        Reads four bytes and returns an int.
        Overrides:
        readInt in class DataInput
        Throws:
        java.io.IOException
        See Also:
        DataOutput.writeInt(int)
      • readVInt

        public final int readVInt()
                           throws java.io.IOException
        Description copied from class: DataInput
        Reads an int stored in variable-length format. Reads between one and five bytes. Smaller values take fewer bytes. Negative numbers are not supported.

        The format is described further in DataOutput.writeVInt(int).

        Overrides:
        readVInt in class DataInput
        Throws:
        java.io.IOException
        See Also:
        DataOutput.writeVInt(int)
      • readVLong

        public final long readVLong()
                             throws java.io.IOException
        Description copied from class: DataInput
        Reads a long stored in variable-length format. Reads between one and nine bytes. Smaller values take fewer bytes. Negative numbers are not supported.

        The format is described further in DataOutput.writeVInt(int).

        Overrides:
        readVLong in class DataInput
        Throws:
        java.io.IOException
        See Also:
        DataOutput.writeVLong(long)
      • seek

        public final void seek​(long pos)
                        throws java.io.IOException
        Description copied from class: IndexInput
        Sets current position in this file, where the next read will occur.
        Specified by:
        seek in class IndexInput
        Throws:
        java.io.IOException
        See Also:
        IndexInput.getFilePointer()
      • clone

        public BufferedIndexInput clone()
        Description copied from class: IndexInput
        Returns a clone of this stream.

        Clones of a stream access the same data, and are positioned at the same point as the stream they were cloned from.

        Expert: Subclasses must ensure that clones may be positioned at different points in the input from each other and from the stream they were cloned from.

        Warning: Lucene never closes cloned IndexInputs, it will only do this on the original one. The original instance must take care that cloned instances throw AlreadyClosedException when the original one is closed.

        Overrides:
        clone in class IndexInput
      • bufferSize

        public static int bufferSize​(IOContext context)
        Returns default buffer sizes for the given IOContext