public class UnsafeByteBufferInput extends ByteBufferInput
ByteBufferInput
that reads data from direct ByteBuffer (off-heap memory) using sun.misc.Unsafe. Multi-byte primitive
types use native byte order, so the native byte order on different computers which read and write the data must be the same.
Not available on all JVMs. Util.unsafe
can be checked before using this class.
This class may be much faster when Input.setVariableLengthEncoding(boolean)
is false.
byteBuffer
buffer, capacity, chars, inputStream, limit, position, total, varEncoding
Constructor and Description |
---|
UnsafeByteBufferInput()
Creates an uninitialized Input,
setBuffer(ByteBuffer) must be called before the Input is used. |
UnsafeByteBufferInput(byte[] bytes)
Creates a new Input for reading from a
ByteBuffer which is filled with the specified bytes. |
UnsafeByteBufferInput(byte[] bytes,
int offset,
int count)
Creates a new Input for reading from a
ByteBuffer which is filled with the specified bytes. |
UnsafeByteBufferInput(java.nio.ByteBuffer buffer)
Creates a new Input for reading from a ByteBuffer.
|
UnsafeByteBufferInput(java.io.InputStream inputStream)
Creates a new Input for reading from an InputStream with a buffer size of 4096.
|
UnsafeByteBufferInput(java.io.InputStream inputStream,
int bufferSize)
Creates a new Input for reading from an InputStream with the specified buffer size.
|
UnsafeByteBufferInput(int bufferSize)
Creates a new Input for reading from a direct
ByteBuffer . |
UnsafeByteBufferInput(long address,
int size)
Creates a new Input for reading from a ByteBuffer representing the memory region at the specified address and size.
|
Modifier and Type | Method and Description |
---|---|
int |
read()
Reads a single byte as an int from 0 to 255, or -1 if there are no more bytes are available.
|
boolean |
readBoolean()
Reads a 1 byte boolean.
|
boolean[] |
readBooleans(int length)
Reads a boolean array in bulk.
|
byte |
readByte()
Reads a single byte.
|
void |
readBytes(byte[] bytes,
int offset,
int count)
Reads count bytes and writes them to the specified byte[], starting at offset.
|
void |
readBytes(java.lang.Object to,
long offset,
int count)
Read count bytes and write them to the object at the given offset inside the in-memory representation of the object.
|
int |
readByteUnsigned()
Reads a byte as an int from 0 to 255.
|
char |
readChar()
Reads a 2 byte char.
|
char[] |
readChars(int length)
Reads a char array in bulk.
|
double |
readDouble()
Reads an 8 byte double.
|
double[] |
readDoubles(int length)
Reads a double array in bulk.
|
float |
readFloat()
Reads a 4 byte float.
|
float[] |
readFloats(int length)
Reads a float array in bulk.
|
int |
readInt()
Reads a 4 byte int.
|
int[] |
readInts(int length)
Reads an int array in bulk.
|
long |
readLong()
Reads an 8 byte long.
|
long[] |
readLongs(int length)
Reads a long array in bulk.
|
short |
readShort()
Reads a 2 byte short.
|
short[] |
readShorts(int length)
Reads a short array in bulk.
|
void |
setBuffer(java.nio.ByteBuffer buffer)
Sets a new buffer to read from.
|
canReadVarInt, canReadVarLong, close, fill, getBuffer, getByteBuffer, optional, read, read, readBytes, readShortUnsigned, readString, readStringBuilder, readVarInt, readVarIntFlag, readVarIntFlag, readVarLong, require, reset, setBuffer, setBuffer, setInputStream, setLimit, setPosition, skip, skip
available, canReadInt, canReadLong, end, fill, getInputStream, getVariableLengthEncoding, limit, position, readBytes, readInt, readInts, readLong, readLongs, readVarDouble, readVarFloat, setTotal, setVariableLengthEncoding, total
public UnsafeByteBufferInput()
setBuffer(ByteBuffer)
must be called before the Input is used.public UnsafeByteBufferInput(int bufferSize)
ByteBuffer
.bufferSize
- The size of the buffer. An exception is thrown if more bytes than this are read and
ByteBufferInput.fill(ByteBuffer, int, int)
does not supply more bytes.public UnsafeByteBufferInput(byte[] bytes)
ByteBuffer
which is filled with the specified bytes.public UnsafeByteBufferInput(byte[] bytes, int offset, int count)
ByteBuffer
which is filled with the specified bytes.public UnsafeByteBufferInput(java.nio.ByteBuffer buffer)
public UnsafeByteBufferInput(long address, int size)
public UnsafeByteBufferInput(java.io.InputStream inputStream)
public UnsafeByteBufferInput(java.io.InputStream inputStream, int bufferSize)
public void setBuffer(java.nio.ByteBuffer buffer)
ByteBufferInput
InputStream
is set to null.setBuffer
in class ByteBufferInput
public int read() throws KryoException
Input
read
in class ByteBufferInput
KryoException
public byte readByte() throws KryoException
Input
readByte
in class ByteBufferInput
KryoException
public int readByteUnsigned() throws KryoException
Input
readByteUnsigned
in class ByteBufferInput
KryoException
public int readInt() throws KryoException
Input
readInt
in class ByteBufferInput
KryoException
public long readLong() throws KryoException
Input
readLong
in class ByteBufferInput
KryoException
public float readFloat() throws KryoException
Input
readFloat
in class ByteBufferInput
KryoException
public double readDouble() throws KryoException
Input
readDouble
in class ByteBufferInput
KryoException
public short readShort() throws KryoException
Input
readShort
in class ByteBufferInput
KryoException
public char readChar() throws KryoException
Input
readChar
in class ByteBufferInput
KryoException
public boolean readBoolean() throws KryoException
Input
readBoolean
in class ByteBufferInput
KryoException
public int[] readInts(int length) throws KryoException
Input
readInts
in class ByteBufferInput
KryoException
public long[] readLongs(int length) throws KryoException
Input
readLongs
in class ByteBufferInput
KryoException
public float[] readFloats(int length) throws KryoException
Input
readFloats
in class ByteBufferInput
KryoException
public double[] readDoubles(int length) throws KryoException
Input
readDoubles
in class ByteBufferInput
KryoException
public short[] readShorts(int length) throws KryoException
Input
readShorts
in class ByteBufferInput
KryoException
public char[] readChars(int length) throws KryoException
Input
readChars
in class ByteBufferInput
KryoException
public boolean[] readBooleans(int length) throws KryoException
Input
readBooleans
in class ByteBufferInput
KryoException
public void readBytes(byte[] bytes, int offset, int count) throws KryoException
Input
readBytes
in class ByteBufferInput
KryoException
public void readBytes(java.lang.Object to, long offset, int count) throws KryoException
KryoException
Copyright © 2019. All Rights Reserved.