Class ByteBuffersIndexInput
- java.lang.Object
-
- org.apache.lucene.store.DataInput
-
- org.apache.lucene.store.IndexInput
-
- org.apache.lucene.store.ByteBuffersIndexInput
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.lang.Cloneable,RandomAccessInput
public final class ByteBuffersIndexInput extends IndexInput implements RandomAccessInput
-
-
Field Summary
Fields Modifier and Type Field Description private ByteBuffersDataInputin
-
Constructor Summary
Constructors Constructor Description ByteBuffersIndexInput(ByteBuffersDataInput in, java.lang.String resourceDescription)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IndexInputclone()Returns a clone of this stream.voidclose()Closes the stream to further operations.private voidensureOpen()longgetFilePointer()Returns the current position in this file, where the next read will occur.longlength()The number of bytes in the file.RandomAccessInputrandomAccessSlice(long offset, long length)Creates a random-access slice of this index input, with the given offset and length.bytereadByte()Reads and returns a single byte.bytereadByte(long pos)Reads a byte at the given position in the filevoidreadBytes(byte[] b, int offset, int len)Reads a specified number of bytes into an array at the specified offset.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).intreadInt()Reads four bytes and returns an int.intreadInt(long pos)Reads an integer at the given position in the filelongreadLong()Reads eight bytes and returns a long.longreadLong(long pos)Reads a long at the given position in the filejava.util.Map<java.lang.String,java.lang.String>readMapOfStrings()Reads a Map<String,String> previously written withDataOutput.writeMapOfStrings(Map).java.util.Set<java.lang.String>readSetOfStrings()Reads a Set<String> previously written withDataOutput.writeSetOfStrings(Set).shortreadShort()Reads two bytes and returns a short.shortreadShort(long pos)Reads a short at the given position in the filejava.lang.StringreadString()Reads a string.intreadVInt()Reads an int stored in variable-length format.longreadVLong()Reads a long stored in variable-length format.intreadZInt()Read azig-zag-encodedvariable-lengthinteger.longreadZLong()Read azig-zag-encodedvariable-lengthinteger.voidseek(long pos)Sets current position in this file, where the next read will occur.voidskipBytes(long numBytes)Skip overnumBytesbytes.ByteBuffersIndexInputslice(java.lang.String sliceDescription, long offset, long length)Creates a slice of this index input, with the given description, offset, and length.-
Methods inherited from class org.apache.lucene.store.IndexInput
getFullSliceDescription, toString
-
Methods inherited from class org.apache.lucene.store.DataInput
readLELongs
-
-
-
-
Field Detail
-
in
private ByteBuffersDataInput in
-
-
Constructor Detail
-
ByteBuffersIndexInput
public ByteBuffersIndexInput(ByteBuffersDataInput in, java.lang.String resourceDescription)
-
-
Method Detail
-
close
public void close() throws java.io.IOExceptionDescription copied from class:IndexInputCloses the stream to further operations.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classIndexInput- Throws:
java.io.IOException
-
getFilePointer
public 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:
IndexInput.seek(long)
-
seek
public void seek(long pos) throws java.io.IOExceptionDescription 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:
java.io.IOException- See Also:
IndexInput.getFilePointer()
-
length
public long length()
Description copied from class:IndexInputThe number of bytes in the file.- Specified by:
lengthin classIndexInput
-
slice
public ByteBuffersIndexInput slice(java.lang.String sliceDescription, long offset, long length) throws java.io.IOException
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:
java.io.IOException
-
readByte
public byte readByte() throws java.io.IOExceptionDescription copied from class:DataInputReads and returns a single byte.- Specified by:
readBytein classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeByte(byte)
-
readBytes
public void readBytes(byte[] b, int offset, int len) throws java.io.IOExceptionDescription 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:
java.io.IOException- See Also:
DataOutput.writeBytes(byte[],int)
-
randomAccessSlice
public RandomAccessInput randomAccessSlice(long offset, long length) throws java.io.IOException
Description copied from class:IndexInputCreates a random-access slice of this index input, with the given offset and length.The default implementation calls
IndexInput.slice(java.lang.String, long, long), and it doesn't support random access, it implements absolute reads as seek+read.- Overrides:
randomAccessSlicein classIndexInput- Throws:
java.io.IOException
-
readBytes
public void readBytes(byte[] b, int offset, int len, boolean useBuffer) throws java.io.IOExceptionDescription 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:
java.io.IOException- See Also:
DataOutput.writeBytes(byte[],int)
-
readShort
public short readShort() throws java.io.IOExceptionDescription copied from class:DataInputReads two bytes and returns a short.- Overrides:
readShortin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeByte(byte)
-
readInt
public int readInt() throws java.io.IOExceptionDescription copied from class:DataInputReads four bytes and returns an int.- Overrides:
readIntin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeInt(int)
-
readVInt
public int readVInt() throws java.io.IOExceptionDescription copied from class:DataInputReads 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:
readVIntin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeVInt(int)
-
readZInt
public int readZInt() throws java.io.IOExceptionDescription copied from class:DataInputRead azig-zag-encodedvariable-lengthinteger.- Overrides:
readZIntin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeZInt(int)
-
readLong
public long readLong() throws java.io.IOExceptionDescription copied from class:DataInputReads eight bytes and returns a long.- Overrides:
readLongin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeLong(long)
-
readVLong
public long readVLong() throws java.io.IOExceptionDescription copied from class:DataInputReads 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:
readVLongin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeVLong(long)
-
readZLong
public long readZLong() throws java.io.IOExceptionDescription copied from class:DataInputRead azig-zag-encodedvariable-lengthinteger. Reads between one and ten bytes.- Overrides:
readZLongin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeZLong(long)
-
readString
public java.lang.String readString() throws java.io.IOExceptionDescription copied from class:DataInputReads a string.- Overrides:
readStringin classDataInput- Throws:
java.io.IOException- See Also:
DataOutput.writeString(String)
-
readMapOfStrings
public java.util.Map<java.lang.String,java.lang.String> readMapOfStrings() throws java.io.IOExceptionDescription copied from class:DataInputReads a Map<String,String> previously written withDataOutput.writeMapOfStrings(Map).- Overrides:
readMapOfStringsin classDataInput- Returns:
- An immutable map containing the written contents.
- Throws:
java.io.IOException
-
readSetOfStrings
public java.util.Set<java.lang.String> readSetOfStrings() throws java.io.IOExceptionDescription copied from class:DataInputReads a Set<String> previously written withDataOutput.writeSetOfStrings(Set).- Overrides:
readSetOfStringsin classDataInput- Returns:
- An immutable set containing the written contents.
- Throws:
java.io.IOException
-
skipBytes
public void skipBytes(long numBytes) throws java.io.IOExceptionDescription copied from class:DataInputSkip overnumBytesbytes. The contract on this method is that it should have the same behavior as reading the same number of bytes into a buffer and discarding its content. Negative values ofnumBytesare not supported.
-
readByte
public byte readByte(long pos) throws java.io.IOExceptionDescription copied from interface:RandomAccessInputReads a byte at the given position in the file- Specified by:
readBytein interfaceRandomAccessInput- Throws:
java.io.IOException- See Also:
DataInput.readByte()
-
readShort
public short readShort(long pos) throws java.io.IOExceptionDescription copied from interface:RandomAccessInputReads a short at the given position in the file- Specified by:
readShortin interfaceRandomAccessInput- Throws:
java.io.IOException- See Also:
DataInput.readShort()
-
readInt
public int readInt(long pos) throws java.io.IOExceptionDescription copied from interface:RandomAccessInputReads an integer at the given position in the file- Specified by:
readIntin interfaceRandomAccessInput- Throws:
java.io.IOException- See Also:
DataInput.readInt()
-
readLong
public long readLong(long pos) throws java.io.IOExceptionDescription copied from interface:RandomAccessInputReads a long at the given position in the file- Specified by:
readLongin interfaceRandomAccessInput- Throws:
java.io.IOException- See Also:
DataInput.readLong()
-
clone
public IndexInput 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
-
ensureOpen
private void ensureOpen()
-
-