Package org.apache.lucene.store
Class BufferedIndexInput
java.lang.Object
org.apache.lucene.store.DataInput
org.apache.lucene.store.IndexInput
org.apache.lucene.store.BufferedIndexInput
- All Implemented Interfaces:
Closeable,AutoCloseable,Cloneable,RandomAccessInput
Base implementation class for buffered
IndexInput.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault buffer size set to 1024.static final intA buffer size for merges set to 4096.static final intMinimum 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 intbufferSize(IOContext context) Returns default buffer sizes for the givenIOContextclone()Returns a clone of this stream.final intReturns buffer sizefinal longReturns the current position in this file, where the next read will occur.final bytereadByte()Reads and returns a single byte.final bytereadByte(long pos) Reads a byte at the given position in the filefinal voidreadBytes(byte[] b, int offset, int len) Reads a specified number of bytes into an array at the specified offset.final voidreadBytes(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).voidreadBytes(long pos, byte[] bytes, int offset, int len) Reads a specified number of bytes starting at a given position into an array at the specified offset.voidreadFloats(float[] dst, int offset, int len) Reads a specified number of floats into an array at the specified offset.voidreadGroupVInt(int[] dst, int offset) Override if you have an efficient implementation.final intreadInt()Reads four bytes and returns an int (LE byte order).final intreadInt(long pos) Reads an integer (LE byte order) at the given position in the fileprotected abstract voidExpert: implements buffer refill.voidreadInts(int[] dst, int offset, int len) Reads a specified number of ints into an array at the specified offset.final longreadLong()Reads eight bytes and returns a long (LE byte order).final longreadLong(long pos) Reads a long (LE byte order) at the given position in the filevoidreadLongs(long[] dst, int offset, int len) Read a specified number of longs.final shortReads two bytes and returns a short (LE byte order).final shortreadShort(long pos) Reads a short (LE byte order) at the given position in the filefinal voidseek(long pos) Sets current position in this file, where the next read will occur.protected abstract voidseekInternal(long pos) Expert: implements seek.Creates a slice of this index input, with the given description, offset, and length.static BufferedIndexInputwrap(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, isLoaded, length, prefetch, randomAccessSlice, skipBytes, slice, toString, updateReadAdviceMethods inherited from class org.apache.lucene.store.DataInput
readMapOfStrings, readSetOfStrings, readString, readVInt, readVLong, readZInt, readZLongMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.lucene.store.RandomAccessInput
isLoaded, length, prefetch
-
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:DataInputReads and returns a single byte.- Specified by:
readBytein classDataInput- Throws:
IOException- See Also:
-
getBufferSize
public final int getBufferSize()Returns buffer size -
readBytes
Description copied from class:DataInputReads a specified number of bytes into an array at the specified offset.- Specified by:
readBytesin 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:DataInputReads 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 onlyBufferedIndexInputrespects this parameter.- Overrides:
readBytesin 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:DataInputReads two bytes and returns a short (LE byte order).- Overrides:
readShortin classDataInput- Throws:
IOException- See Also:
-
readInt
Description copied from class:DataInputReads four bytes and returns an int (LE byte order).- Overrides:
readIntin classDataInput- Throws:
IOException- See Also:
-
readGroupVInt
Description copied from class:DataInputOverride if you have an efficient implementation. In general this is when the input supports random access.- Overrides:
readGroupVIntin classDataInput- Throws:
IOException
-
readLong
Description copied from class:DataInputReads eight bytes and returns a long (LE byte order).- Overrides:
readLongin classDataInput- Throws:
IOException- See Also:
-
readFloats
Description copied from class:DataInputReads a specified number of floats into an array at the specified offset.- Overrides:
readFloatsin classDataInput- Parameters:
dst- the array to read bytes intooffset- the offset in the array to start storing floatslen- the number of floats to read- Throws:
IOException
-
readLongs
Description copied from class:DataInputRead a specified number of longs.- Overrides:
readLongsin classDataInput- Throws:
IOException
-
readInts
Description copied from class:DataInputReads a specified number of ints into an array at the specified offset.- Overrides:
readIntsin classDataInput- Parameters:
dst- the array to read bytes intooffset- the offset in the array to start storing intslen- the number of ints to read- Throws:
IOException
-
readByte
Description copied from interface:RandomAccessInputReads a byte at the given position in the file- Specified by:
readBytein interfaceRandomAccessInput- Throws:
IOException- See Also:
-
readBytes
Description copied from interface:RandomAccessInputReads a specified number of bytes starting at a given position into an array at the specified offset.- Specified by:
readBytesin interfaceRandomAccessInput- Throws:
IOException- See Also:
-
readShort
Description copied from interface:RandomAccessInputReads a short (LE byte order) at the given position in the file- Specified by:
readShortin interfaceRandomAccessInput- Throws:
IOException- See Also:
-
readInt
Description copied from interface:RandomAccessInputReads an integer (LE byte order) at the given position in the file- Specified by:
readIntin interfaceRandomAccessInput- Throws:
IOException- See Also:
-
readLong
Description copied from interface:RandomAccessInputReads a long (LE byte order) at the given position in the file- Specified by:
readLongin 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:IndexInputReturns the current position in this file, where the next read will occur.- Specified by:
getFilePointerin classIndexInput- See Also:
-
seek
Description copied from class:IndexInputSets current position in this file, where the next read will occur. If this is beyond the end of the file then this will throwEOFExceptionand then the stream is in an undetermined state.- Specified by:
seekin 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:IndexInputReturns 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 callIndexInput.close()on the original object.If you access the cloned IndexInput after closing the original object, any
readXXXmethods will throwAlreadyClosedException.This method is NOT thread safe, so if the current
IndexInputis being used by one thread whilecloneis called by another, disaster could strike.- Overrides:
clonein classIndexInput
-
slice
Description copied from class:IndexInputCreates a slice of this index input, with the given description, offset, and length. The slice is sought to the beginning.- Specified by:
slicein 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!
-