Class BufferedIndexInput
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Cloneable
,RandomAccessInput
IndexInput
.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Default buffer size set to 1024.static final int
A buffer size for merges set to 4096.static final int
Minimum buffer size allowed -
Constructor Summary
ConstructorsConstructorDescriptionBufferedIndexInput
(String resourceDesc) BufferedIndexInput
(String resourceDesc, int bufferSize) Inits BufferedIndexInput with a specific bufferSizeBufferedIndexInput
(String resourceDesc, IOContext context) -
Method Summary
Modifier and TypeMethodDescriptionstatic int
bufferSize
(IOContext context) Returns default buffer sizes for the givenIOContext
clone()
Returns a clone of this stream.final int
Returns buffer size.final long
Returns the current position in this file, where the next read will occur.final byte
readByte()
Reads and returns a single byte.final byte
readByte
(long pos) Reads a byte at the given position in the filefinal void
readBytes
(byte[] b, int offset, int len) Reads a specified number of bytes into an array at the specified offset.final 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).final int
readInt()
Reads four bytes and returns an int (LE byte order).final int
readInt
(long pos) Reads an integer (LE byte order) at the given position in the fileprotected abstract void
Expert: implements buffer refill.final long
readLong()
Reads eight bytes and returns a long (LE byte order).final long
readLong
(long pos) Reads a long (LE byte order) at the given position in the filefinal short
Reads two bytes and returns a short (LE byte order).final short
readShort
(long pos) Reads a short (LE byte order) at the given position in the filefinal int
readVInt()
Reads an int stored in variable-length format.final long
Reads a long stored in variable-length format.final void
seek
(long pos) Sets current position in this file, where the next read will occur.protected abstract void
seekInternal
(long pos) Expert: implements seek.Creates a slice of this index input, with the given description, offset, and length.static BufferedIndexInput
wrap
(String sliceDescription, IndexInput other, long offset, long length) Wraps a portion of another IndexInput with buffering.Methods inherited from class org.apache.lucene.store.IndexInput
close, getFullSliceDescription, length, randomAccessSlice, skipBytes, toString
Methods inherited from class org.apache.lucene.store.DataInput
readFloats, readLongs, readMapOfStrings, readSetOfStrings, readString, readZInt, readZLong
-
Field Details
-
BUFFER_SIZE
public static final int BUFFER_SIZEDefault buffer size set to 1024.- See Also:
-
MIN_BUFFER_SIZE
public static final int MIN_BUFFER_SIZEMinimum buffer size allowed- See Also:
-
MERGE_BUFFER_SIZE
public static final int MERGE_BUFFER_SIZEA buffer size for merges set to 4096.- See Also:
-
-
Constructor Details
-
BufferedIndexInput
-
BufferedIndexInput
-
BufferedIndexInput
Inits BufferedIndexInput with a specific bufferSize
-
-
Method Details
-
readByte
Description copied from class:DataInput
Reads and returns a single byte.- Specified by:
readByte
in classDataInput
- Throws:
IOException
- See Also:
-
getBufferSize
public final int getBufferSize()Returns buffer size. @see #setBufferSize -
readBytes
Description copied from class:DataInput
Reads a specified number of bytes into an array at the specified offset.- Specified by:
readBytes
in classDataInput
- Parameters:
b
- the array to read bytes intooffset
- the offset in the array to start storing byteslen
- the number of bytes to read- Throws:
IOException
- See Also:
-
readBytes
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 onlyBufferedIndexInput
respects this parameter.- Overrides:
readBytes
in classDataInput
- Parameters:
b
- the array to read bytes intooffset
- the offset in the array to start storing byteslen
- the number of bytes to readuseBuffer
- set to false if the caller will handle buffering.- Throws:
IOException
- See Also:
-
readShort
Description copied from class:DataInput
Reads two bytes and returns a short (LE byte order).- Overrides:
readShort
in classDataInput
- Throws:
IOException
- See Also:
-
readInt
Description copied from class:DataInput
Reads four bytes and returns an int (LE byte order).- Overrides:
readInt
in classDataInput
- Throws:
IOException
- See Also:
-
readLong
Description copied from class:DataInput
Reads eight bytes and returns a long (LE byte order).- Overrides:
readLong
in classDataInput
- Throws:
IOException
- See Also:
-
readVInt
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 supported, but should be avoided.The format is described further in
DataOutput.writeVInt(int)
.- Overrides:
readVInt
in classDataInput
- Throws:
IOException
- See Also:
-
readVLong
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 classDataInput
- Throws:
IOException
- See Also:
-
readByte
Description copied from interface:RandomAccessInput
Reads a byte at the given position in the file- Specified by:
readByte
in interfaceRandomAccessInput
- Throws:
IOException
- See Also:
-
readShort
Description copied from interface:RandomAccessInput
Reads a short (LE byte order) at the given position in the file- Specified by:
readShort
in interfaceRandomAccessInput
- Throws:
IOException
- See Also:
-
readInt
Description copied from interface:RandomAccessInput
Reads an integer (LE byte order) at the given position in the file- Specified by:
readInt
in interfaceRandomAccessInput
- Throws:
IOException
- See Also:
-
readLong
Description copied from interface:RandomAccessInput
Reads a long (LE byte order) at the given position in the file- Specified by:
readLong
in interfaceRandomAccessInput
- Throws:
IOException
- See Also:
-
readInternal
Expert: implements buffer refill. Reads bytes from the current position in the input.- Parameters:
b
- the buffer to read bytes into- Throws:
IOException
-
getFilePointer
public final long getFilePointer()Description copied from class:IndexInput
Returns the current position in this file, where the next read will occur.- Specified by:
getFilePointer
in classIndexInput
- See Also:
-
seek
Description copied from class:IndexInput
Sets current position in this file, where the next read will occur. If this is beyond the end of the file then this will throwEOFException
and then the stream is in an undetermined state.- Specified by:
seek
in classIndexInput
- Throws:
IOException
- See Also:
-
seekInternal
Expert: implements seek. Sets current position in this file, where the nextreadInternal(ByteBuffer)
will occur.- Throws:
IOException
- See Also:
-
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
IndexInput
s, it will only callIndexInput.close()
on the original object.If you access the cloned IndexInput after closing the original object, any
readXXX
methods will throwAlreadyClosedException
.This method is NOT thread safe, so if the current
IndexInput
is being used by one thread whileclone
is called by another, disaster could strike.- Overrides:
clone
in classIndexInput
-
slice
Description copied from class:IndexInput
Creates a slice of this index input, with the given description, offset, and length. The slice is sought to the beginning.- Specified by:
slice
in classIndexInput
- Throws:
IOException
-
bufferSize
Returns default buffer sizes for the givenIOContext
-
wrap
public static BufferedIndexInput wrap(String sliceDescription, IndexInput other, long offset, long length) Wraps a portion of another IndexInput with buffering.Please note: This is in most cases ineffective, because it may double buffer!
-