Class ByteBuffersIndexInput
- java.lang.Object
-
- org.apache.lucene.store.DataInput
-
- org.apache.lucene.store.IndexInput
-
- org.apache.lucene.store.ByteBuffersIndexInput
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Cloneable
,RandomAccessInput
public final class ByteBuffersIndexInput extends IndexInput implements RandomAccessInput
-
-
Constructor Summary
Constructors Constructor Description ByteBuffersIndexInput(ByteBuffersDataInput in, String resourceDescription)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IndexInput
clone()
Returns a clone of this stream.void
close()
Closes the stream to further operations.long
getFilePointer()
Returns the current position in this file, where the next read will occur.long
length()
The number of bytes in the file.RandomAccessInput
randomAccessSlice(long offset, long length)
Creates a random-access slice of this index input, with the given offset and length.byte
readByte()
Reads and returns a single byte.byte
readByte(long pos)
Reads a byte at the given position in the filevoid
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).void
readFloats(float[] floats, int offset, int len)
Reads a specified number of floats into an array at the specified offset.protected void
readGroupVInt(long[] dst, int offset)
Override if you have a efficient implementation.int
readInt()
Reads four bytes and returns an int (LE byte order).int
readInt(long pos)
Reads an integer (LE byte order) at the given position in the filelong
readLong()
Reads eight bytes and returns a long (LE byte order).long
readLong(long pos)
Reads a long (LE byte order) at the given position in the filevoid
readLongs(long[] dst, int offset, int length)
Read a specified number of longs.Map<String,String>
readMapOfStrings()
Reads a Map<String,String> previously written withDataOutput.writeMapOfStrings(Map)
.Set<String>
readSetOfStrings()
Reads a Set<String> previously written withDataOutput.writeSetOfStrings(Set)
.short
readShort()
Reads two bytes and returns a short (LE byte order).short
readShort(long pos)
Reads a short (LE byte order) at the given position in the fileString
readString()
Reads a string.int
readVInt()
Reads an int stored in variable-length format.long
readVLong()
Reads a long stored in variable-length format.int
readZInt()
Read azig-zag
-encodedvariable-length
integer.long
readZLong()
Read azig-zag
-encodedvariable-length
integer.void
seek(long pos)
Sets current position in this file, where the next read will occur.void
skipBytes(long numBytes)
Skip overnumBytes
bytes.ByteBuffersIndexInput
slice(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
readGroupVInts, readInts
-
-
-
-
Constructor Detail
-
ByteBuffersIndexInput
public ByteBuffersIndexInput(ByteBuffersDataInput in, String resourceDescription)
-
-
Method Detail
-
close
public void close() throws IOException
Description copied from class:IndexInput
Closes the stream to further operations.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classIndexInput
- Throws:
IOException
-
getFilePointer
public 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:
IndexInput.seek(long)
-
seek
public void seek(long pos) throws IOException
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:
IndexInput.getFilePointer()
-
length
public long length()
Description copied from class:IndexInput
The number of bytes in the file.- Specified by:
length
in interfaceRandomAccessInput
- Specified by:
length
in classIndexInput
-
slice
public ByteBuffersIndexInput slice(String sliceDescription, long offset, long length) throws IOException
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
-
readByte
public byte readByte() throws IOException
Description copied from class:DataInput
Reads and returns a single byte.- Specified by:
readByte
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeByte(byte)
-
readBytes
public 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 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:
DataOutput.writeBytes(byte[],int)
-
randomAccessSlice
public RandomAccessInput randomAccessSlice(long offset, long length) throws IOException
Description copied from class:IndexInput
Creates 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:
randomAccessSlice
in classIndexInput
- Throws:
IOException
-
readBytes
public 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 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:
DataOutput.writeBytes(byte[],int)
-
readShort
public short readShort() throws IOException
Description copied from class:DataInput
Reads two bytes and returns a short (LE byte order).- Overrides:
readShort
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeShort(short)
,BitUtil.VH_LE_SHORT
-
readInt
public int readInt() throws IOException
Description copied from class:DataInput
Reads four bytes and returns an int (LE byte order).- Overrides:
readInt
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeInt(int)
,BitUtil.VH_LE_INT
-
readVInt
public int readVInt() throws 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 supported, but should be avoided.The format is described further in
DataOutput.writeVInt(int)
.- Overrides:
readVInt
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeVInt(int)
-
readZInt
public int readZInt() throws IOException
Description copied from class:DataInput
Read azig-zag
-encodedvariable-length
integer.- Overrides:
readZInt
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeZInt(int)
-
readLong
public long readLong() throws IOException
Description copied from class:DataInput
Reads eight bytes and returns a long (LE byte order).- Overrides:
readLong
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeLong(long)
,BitUtil.VH_LE_LONG
-
readVLong
public 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.The format is described further in
DataOutput.writeVInt(int)
.- Overrides:
readVLong
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeVLong(long)
-
readZLong
public long readZLong() throws IOException
Description copied from class:DataInput
Read azig-zag
-encodedvariable-length
integer. Reads between one and ten bytes.- Overrides:
readZLong
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeZLong(long)
-
readString
public String readString() throws IOException
Description copied from class:DataInput
Reads a string.- Overrides:
readString
in classDataInput
- Throws:
IOException
- See Also:
DataOutput.writeString(String)
-
readMapOfStrings
public Map<String,String> readMapOfStrings() throws IOException
Description copied from class:DataInput
Reads a Map<String,String> previously written withDataOutput.writeMapOfStrings(Map)
.- Overrides:
readMapOfStrings
in classDataInput
- Returns:
- An immutable map containing the written contents.
- Throws:
IOException
-
readSetOfStrings
public Set<String> readSetOfStrings() throws IOException
Description copied from class:DataInput
Reads a Set<String> previously written withDataOutput.writeSetOfStrings(Set)
.- Overrides:
readSetOfStrings
in classDataInput
- Returns:
- An immutable set containing the written contents.
- Throws:
IOException
-
skipBytes
public void skipBytes(long numBytes) throws IOException
Description copied from class:IndexInput
Skip overnumBytes
bytes. This method may skip bytes in whatever way is most optimal, and may not have the same behavior as reading the skipped bytes. In general, negativenumBytes
are not supported.Behavior is functionally equivalent to seeking to
getFilePointer() + numBytes
.- Overrides:
skipBytes
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.getFilePointer()
,IndexInput.seek(long)
-
readByte
public byte readByte(long pos) throws IOException
Description copied from interface:RandomAccessInput
Reads a byte at the given position in the file- Specified by:
readByte
in interfaceRandomAccessInput
- Throws:
IOException
- See Also:
DataInput.readByte()
-
readShort
public short readShort(long pos) throws IOException
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:
DataInput.readShort()
,BitUtil.VH_LE_SHORT
-
readInt
public int readInt(long pos) throws IOException
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:
DataInput.readInt()
,BitUtil.VH_LE_INT
-
readLong
public long readLong(long pos) throws IOException
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:
DataInput.readLong()
,BitUtil.VH_LE_LONG
-
readFloats
public void readFloats(float[] floats, int offset, int len) throws IOException
Description copied from class:DataInput
Reads a specified number of floats into an array at the specified offset.- Overrides:
readFloats
in classDataInput
- Parameters:
floats
- the array to read bytes intooffset
- the offset in the array to start storing floatslen
- the number of floats to read- Throws:
IOException
-
readLongs
public void readLongs(long[] dst, int offset, int length) throws IOException
Description copied from class:DataInput
Read a specified number of longs.- Overrides:
readLongs
in classDataInput
- Throws:
IOException
-
readGroupVInt
protected void readGroupVInt(long[] dst, int offset) throws IOException
Description copied from class:DataInput
Override if you have a efficient implementation. In general this is when the input supports random access.- Overrides:
readGroupVInt
in classDataInput
- Throws:
IOException
-
clone
public IndexInput 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
-
-