Package com.esotericsoftware.kryo.unsafe
Class UnsafeInput
- java.lang.Object
-
- java.io.InputStream
-
- com.esotericsoftware.kryo.io.Input
-
- com.esotericsoftware.kryo.unsafe.UnsafeInput
-
- All Implemented Interfaces:
Pool.Poolable
,java.io.Closeable
,java.lang.AutoCloseable
public class UnsafeInput extends Input
AnInput
that reads data from a byte[] 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.- Author:
- Roman Levenstein
, Nathan Sweet
-
-
Field Summary
-
Fields inherited from class com.esotericsoftware.kryo.io.Input
buffer, capacity, chars, inputStream, limit, position, total, varEncoding
-
-
Constructor Summary
Constructors Constructor Description UnsafeInput()
Creates an uninitialized Input,Input.setBuffer(byte[])
must be called before the Input is used.UnsafeInput(byte[] buffer)
Creates a new Input for reading from a byte[] buffer.UnsafeInput(byte[] buffer, int offset, int count)
Creates a new Input for reading from a byte[] buffer.UnsafeInput(int bufferSize)
Creates a new Input for reading from a byte[] buffer.UnsafeInput(java.io.InputStream inputStream)
Creates a new Input for reading from an InputStream with a buffer size of 4096.UnsafeInput(java.io.InputStream inputStream, int bufferSize)
Creates a new Input for reading from an InputStream with the specified buffer size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.-
Methods inherited from class com.esotericsoftware.kryo.io.Input
available, canReadInt, canReadLong, canReadVarInt, canReadVarLong, close, end, fill, getBuffer, getInputStream, getVariableLengthEncoding, limit, optional, position, read, read, readBytes, readBytes, readInt, readInts, readLong, readLongs, readShortUnsigned, readString, readStringBuilder, readVarDouble, readVarFloat, readVarInt, readVarIntFlag, readVarIntFlag, readVarLong, require, reset, setBuffer, setBuffer, setInputStream, setLimit, setPosition, setTotal, setVariableLengthEncoding, skip, skip, total
-
-
-
-
Constructor Detail
-
UnsafeInput
public UnsafeInput()
Creates an uninitialized Input,Input.setBuffer(byte[])
must be called before the Input is used.
-
UnsafeInput
public UnsafeInput(int bufferSize)
Creates a new Input for reading from a byte[] buffer.- Parameters:
bufferSize
- The size of the buffer. An exception is thrown if more bytes than this are read andInput.fill(byte[], int, int)
does not supply more bytes.
-
UnsafeInput
public UnsafeInput(byte[] buffer)
Creates a new Input for reading from a byte[] buffer.- Parameters:
buffer
- An exception is thrown if more bytes than this are read andInput.fill(byte[], int, int)
does not supply more bytes.
-
UnsafeInput
public UnsafeInput(byte[] buffer, int offset, int count)
Creates a new Input for reading from a byte[] buffer.- Parameters:
buffer
- An exception is thrown if more bytes than this are read andInput.fill(byte[], int, int)
does not supply more bytes.
-
UnsafeInput
public UnsafeInput(java.io.InputStream inputStream)
Creates a new Input for reading from an InputStream with a buffer size of 4096.
-
UnsafeInput
public UnsafeInput(java.io.InputStream inputStream, int bufferSize)
Creates a new Input for reading from an InputStream with the specified buffer size.
-
-
Method Detail
-
read
public int read() throws KryoException
Description copied from class:Input
Reads a single byte as an int from 0 to 255, or -1 if there are no more bytes are available.- Overrides:
read
in classInput
- Throws:
KryoException
-
readByte
public byte readByte() throws KryoException
Description copied from class:Input
Reads a single byte.- Overrides:
readByte
in classInput
- Throws:
KryoException
-
readByteUnsigned
public int readByteUnsigned() throws KryoException
Description copied from class:Input
Reads a byte as an int from 0 to 255.- Overrides:
readByteUnsigned
in classInput
- Throws:
KryoException
-
readInt
public int readInt() throws KryoException
Description copied from class:Input
Reads a 4 byte int.- Overrides:
readInt
in classInput
- Throws:
KryoException
-
readLong
public long readLong() throws KryoException
Description copied from class:Input
Reads an 8 byte long.- Overrides:
readLong
in classInput
- Throws:
KryoException
-
readFloat
public float readFloat() throws KryoException
Description copied from class:Input
Reads a 4 byte float.- Overrides:
readFloat
in classInput
- Throws:
KryoException
-
readDouble
public double readDouble() throws KryoException
Description copied from class:Input
Reads an 8 byte double.- Overrides:
readDouble
in classInput
- Throws:
KryoException
-
readShort
public short readShort() throws KryoException
Description copied from class:Input
Reads a 2 byte short.- Overrides:
readShort
in classInput
- Throws:
KryoException
-
readChar
public char readChar() throws KryoException
Description copied from class:Input
Reads a 2 byte char.- Overrides:
readChar
in classInput
- Throws:
KryoException
-
readBoolean
public boolean readBoolean() throws KryoException
Description copied from class:Input
Reads a 1 byte boolean.- Overrides:
readBoolean
in classInput
- Throws:
KryoException
-
readInts
public int[] readInts(int length) throws KryoException
Description copied from class:Input
Reads an int array in bulk. This may be more efficient than reading them individually.- Overrides:
readInts
in classInput
- Throws:
KryoException
-
readLongs
public long[] readLongs(int length) throws KryoException
Description copied from class:Input
Reads a long array in bulk. This may be more efficient than reading them individually.- Overrides:
readLongs
in classInput
- Throws:
KryoException
-
readFloats
public float[] readFloats(int length) throws KryoException
Description copied from class:Input
Reads a float array in bulk. This may be more efficient than reading them individually.- Overrides:
readFloats
in classInput
- Throws:
KryoException
-
readDoubles
public double[] readDoubles(int length) throws KryoException
Description copied from class:Input
Reads a double array in bulk. This may be more efficient than reading them individually.- Overrides:
readDoubles
in classInput
- Throws:
KryoException
-
readShorts
public short[] readShorts(int length) throws KryoException
Description copied from class:Input
Reads a short array in bulk. This may be more efficient than reading them individually.- Overrides:
readShorts
in classInput
- Throws:
KryoException
-
readChars
public char[] readChars(int length) throws KryoException
Description copied from class:Input
Reads a char array in bulk. This may be more efficient than reading them individually.- Overrides:
readChars
in classInput
- Throws:
KryoException
-
readBooleans
public boolean[] readBooleans(int length) throws KryoException
Description copied from class:Input
Reads a boolean array in bulk. This may be more efficient than reading them individually.- Overrides:
readBooleans
in classInput
- Throws:
KryoException
-
readBytes
public void readBytes(byte[] bytes, int offset, int count) throws KryoException
Description copied from class:Input
Reads count bytes and writes them to the specified byte[], starting at offset.- Overrides:
readBytes
in classInput
- Throws:
KryoException
-
readBytes
public void readBytes(java.lang.Object to, long offset, int count) throws KryoException
Read count bytes and write them to the object at the given offset inside the in-memory representation of the object.- Throws:
KryoException
-
-