Package com.esotericsoftware.kryo.io
Class Input
java.lang.Object
java.io.InputStream
com.esotericsoftware.kryo.io.Input
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
InputChunked
An InputStream that reads data from a byte array and optionally fills the byte array from another OutputStream as needed.
Utility methods are provided for efficiently reading primitive types and strings.
-
Constructor Summary
ConstructorsConstructorDescriptionInput()Creates an uninitialized Input.Input(byte[] buffer) Creates a new Input for reading from a byte array.Input(byte[] buffer, int offset, int count) Creates a new Input for reading from a byte array.Input(int bufferSize) Creates a new Input for reading from a byte array.Input(InputStream inputStream) Creates a new Input for reading from an InputStream with a buffer size of 4096.Input(InputStream inputStream, int bufferSize) Creates a new Input for reading from an InputStream. -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns true if enough bytes are available to read an int withreadInt(boolean).booleanReturns true if enough bytes are available to read a long withreadLong(boolean).voidclose()Closes the underlying InputStream, if any.protected intfill(byte[] buffer, int offset, int count) Fills the buffer with more bytes.byte[]intlimit()Returns the limit for the buffer.intposition()Returns the current position in the buffer.intread()Reads a single byte as an int from 0 to 255, or -1 if there are no more bytes are available.intread(byte[] bytes) Reads bytes.length bytes or less and writes them to the specified byte[], starting at 0, and returns the number of bytes read.intread(byte[] bytes, int offset, int count) Reads count bytes or less and writes them to the specified byte[], starting at offset, and returns the number of bytes read or -1 if no more bytes are available.booleanReads a 1 byte boolean.bytereadByte()Reads a single byte.voidreadBytes(byte[] bytes) Reads bytes.length bytes and writes them to the specified byte[], starting at index 0.voidreadBytes(byte[] bytes, int offset, int count) Reads count bytes and writes them to the specified byte[], starting at offset.byte[]readBytes(int length) Reads the specified number of bytes into a new byte[].intReads a byte as an int from 0 to 255.charreadChar()Reads a 2 byte char.doubleReads an 8 bytes double.doublereadDouble(double precision, boolean optimizePositive) Reads a 1-9 byte double with reduced precision.floatReads a 4 byte float.floatreadFloat(float precision, boolean optimizePositive) Reads a 1-5 byte float with reduced precision.intreadInt()Reads a 4 byte int.intreadInt(boolean optimizePositive) Reads a 1-5 byte int.longreadLong()Reads an 8 byte long.longreadLong(boolean optimizePositive) Reads a 1-9 byte long.shortReads a 2 byte short.intReads a 2 byte short as an int from 0 to 65535.Reads the length and string of UTF8 characters, or null.Reads the length and string of UTF8 characters, or null.voidrewind()Sets the position and total to zero.voidsetBuffer(byte[] bytes) Sets a new buffer.voidsetBuffer(byte[] bytes, int offset, int count) Sets a new buffer.voidsetInputStream(InputStream inputStream) Sets a new InputStream.voidsetLimit(int limit) Sets the limit in the buffer.voidsetPosition(int position) Sets the current position in the buffer.voidsetTotal(int total) Sets the number of bytes read.voidskip(int count) Discards the specified number of bytes.longskip(long count) Discards the specified number of bytes.inttotal()Returns the number of bytes read.Methods inherited from class java.io.InputStream
available, mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skipNBytes, transferTo
-
Constructor Details
-
Input
public Input()Creates an uninitialized Input.setBuffer(byte[])must be called before the Input is used. -
Input
public Input(int bufferSize) Creates a new Input for reading from a byte array.- Parameters:
bufferSize- The size of the buffer. An exception is thrown if more bytes than this are read.
-
Input
public Input(byte[] buffer) Creates a new Input for reading from a byte array.- Parameters:
buffer- An exception is thrown if more bytes than this are read.
-
Input
public Input(byte[] buffer, int offset, int count) Creates a new Input for reading from a byte array.- Parameters:
buffer- An exception is thrown if more bytes than this are read.
-
Input
Creates a new Input for reading from an InputStream with a buffer size of 4096. -
Input
Creates a new Input for reading from an InputStream.
-
-
Method Details
-
setBuffer
public void setBuffer(byte[] bytes) Sets a new buffer. The position and total are reset, discarding any buffered bytes. -
setBuffer
public void setBuffer(byte[] bytes, int offset, int count) Sets a new buffer. The position and total are reset, discarding any buffered bytes. -
getBuffer
public byte[] getBuffer() -
getInputStream
-
setInputStream
Sets a new InputStream. The position and total are reset, discarding any buffered bytes.- Parameters:
inputStream- May be null.
-
total
public int total()Returns the number of bytes read. -
setTotal
public void setTotal(int total) Sets the number of bytes read. -
position
public int position()Returns the current position in the buffer. -
setPosition
public void setPosition(int position) Sets the current position in the buffer. -
limit
public int limit()Returns the limit for the buffer. -
setLimit
public void setLimit(int limit) Sets the limit in the buffer. -
rewind
public void rewind()Sets the position and total to zero. -
skip
Discards the specified number of bytes.- Throws:
KryoException
-
fill
Fills the buffer with more bytes. Can be overridden to fill the bytes from a source other than the InputStream.- Throws:
KryoException
-
read
Reads a single byte as an int from 0 to 255, or -1 if there are no more bytes are available.- Specified by:
readin classInputStream- Throws:
KryoException
-
read
Reads bytes.length bytes or less and writes them to the specified byte[], starting at 0, and returns the number of bytes read.- Overrides:
readin classInputStream- Throws:
KryoException
-
read
Reads count bytes or less and writes them to the specified byte[], starting at offset, and returns the number of bytes read or -1 if no more bytes are available.- Overrides:
readin classInputStream- Throws:
KryoException
-
skip
Discards the specified number of bytes.- Overrides:
skipin classInputStream- Throws:
KryoException
-
close
Closes the underlying InputStream, if any.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
KryoException
-
readByte
Reads a single byte.- Throws:
KryoException
-
readByteUnsigned
Reads a byte as an int from 0 to 255.- Throws:
KryoException
-
readBytes
Reads the specified number of bytes into a new byte[].- Throws:
KryoException
-
readBytes
Reads bytes.length bytes and writes them to the specified byte[], starting at index 0.- Throws:
KryoException
-
readBytes
Reads count bytes and writes them to the specified byte[], starting at offset.- Throws:
KryoException
-
readInt
Reads a 4 byte int.- Throws:
KryoException
-
readInt
Reads a 1-5 byte int.- Throws:
KryoException
-
canReadInt
Returns true if enough bytes are available to read an int withreadInt(boolean).- Throws:
KryoException
-
canReadLong
Returns true if enough bytes are available to read a long withreadLong(boolean).- Throws:
KryoException
-
readString
Reads the length and string of UTF8 characters, or null. This can read strings written byOutput.writeString(String),Output.writeString(CharSequence), andOutput.writeAscii(String).- Returns:
- May be null.
-
readStringBuilder
Reads the length and string of UTF8 characters, or null. This can read strings written byOutput.writeString(String),Output.writeString(CharSequence), andOutput.writeAscii(String).- Returns:
- May be null.
-
readFloat
Reads a 4 byte float.- Throws:
KryoException
-
readFloat
Reads a 1-5 byte float with reduced precision.- Throws:
KryoException
-
readShort
Reads a 2 byte short.- Throws:
KryoException
-
readShortUnsigned
Reads a 2 byte short as an int from 0 to 65535.- Throws:
KryoException
-
readLong
Reads an 8 byte long.- Throws:
KryoException
-
readLong
Reads a 1-9 byte long.- Throws:
KryoException
-
readBoolean
Reads a 1 byte boolean.- Throws:
KryoException
-
readChar
Reads a 2 byte char.- Throws:
KryoException
-
readDouble
Reads an 8 bytes double.- Throws:
KryoException
-
readDouble
Reads a 1-9 byte double with reduced precision.- Throws:
KryoException
-