Class BufferedIndexInput

    • Field Detail

      • buffer

        protected byte[] buffer
    • Constructor Detail

      • BufferedIndexInput

        @Deprecated
        public BufferedIndexInput()
        Deprecated.
        please pass resourceDesc
      • BufferedIndexInput

        public BufferedIndexInput​(String resourceDesc)
      • BufferedIndexInput

        @Deprecated
        public BufferedIndexInput​(int bufferSize)
        Deprecated.
        please pass resourceDesc
        Inits BufferedIndexInput with a specific bufferSize
      • BufferedIndexInput

        public BufferedIndexInput​(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
      • newBuffer

        protected void newBuffer​(byte[] newBuffer)
      • getBufferSize

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

        public final void readBytes​(byte[] b,
                                    int offset,
                                    int len)
                             throws 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:
        IOException
        See Also:
        DataOutput.writeBytes(byte[],int)
      • readBytes

        public final void readBytes​(byte[] b,
                                    int offset,
                                    int len,
                                    boolean useBuffer)
                             throws 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:
        IOException
        See Also:
        DataOutput.writeBytes(byte[],int)
      • readVLong

        public final long readVLong()
                             throws 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.
        Overrides:
        readVLong in class DataInput
        Throws:
        IOException
      • readInternal

        protected abstract void readInternal​(byte[] b,
                                             int offset,
                                             int length)
                                      throws IOException
        Expert: implements buffer refill. Reads bytes from the current position in the input.
        Parameters:
        b - the array to read bytes into
        offset - the offset in the array to start storing bytes
        length - the number of bytes to read
        Throws:
        IOException
      • clone

        public Object clone()
        Description copied from class: DataInput
        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.

        Overrides:
        clone in class DataInput
      • flushBuffer

        protected final int flushBuffer​(IndexOutput out,
                                        long numBytes)
                                 throws IOException
        Flushes the in-memory bufer to the given output, copying at most numBytes.

        NOTE: this method does not refill the buffer, however it does advance the buffer position.

        Returns:
        the number of bytes actually flushed from the in-memory buffer.
        Throws:
        IOException
      • copyBytes

        public void copyBytes​(IndexOutput out,
                              long numBytes)
                       throws IOException
        Description copied from class: IndexInput
        Copies numBytes bytes to the given IndexOutput.

        NOTE: this method uses an intermediate buffer to copy the bytes. Consider overriding it in your implementation, if you can make a better, optimized copy.

        NOTE ensure that there are enough bytes in the input to copy to output. Otherwise, different exceptions may be thrown, depending on the implementation.

        Overrides:
        copyBytes in class IndexInput
        Throws:
        IOException