Class ByteBufInputStream
- java.lang.Object
-
- java.io.InputStream
-
- net.lax1dude.eaglercraft.v1_8.netty.ByteBufInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.DataInput
,java.lang.AutoCloseable
public class ByteBufInputStream extends java.io.InputStream implements java.io.DataInput
AnInputStream
which reads data from aByteBuf
.A read operation against this stream will occur at the
readerIndex
of its underlying buffer and thereaderIndex
will increase during the read operation. Please note that it only reads up to the number of readable bytes determined at the moment of construction. Therefore, updatingByteBuf.writerIndex()
will not affect the return value ofavailable()
.This stream implements
DataInput
for your convenience. The endianness of the stream is not always big endian but depends on the endianness of the underlying buffer.- See Also:
ByteBufOutputStream
-
-
Constructor Summary
Constructors Constructor Description ByteBufInputStream(ByteBuf buffer)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending at the currentwriterIndex
.ByteBufInputStream(ByteBuf buffer, boolean releaseOnClose)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending at the currentwriterIndex
.ByteBufInputStream(ByteBuf buffer, int length)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending atreaderIndex + length
.ByteBufInputStream(ByteBuf buffer, int length, boolean releaseOnClose)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending atreaderIndex + length
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
void
mark(int readlimit)
boolean
markSupported()
int
read()
int
read(byte[] b, int off, int len)
boolean
readBoolean()
byte
readByte()
int
readBytes()
Returns the number of read bytes by this stream so far.char
readChar()
double
readDouble()
float
readFloat()
void
readFully(byte[] b)
void
readFully(byte[] b, int off, int len)
int
readInt()
java.lang.String
readLine()
long
readLong()
short
readShort()
int
readUnsignedByte()
int
readUnsignedShort()
java.lang.String
readUTF()
void
reset()
long
skip(long n)
int
skipBytes(int n)
-
-
-
Constructor Detail
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending at the currentwriterIndex
.- Parameters:
buffer
- The buffer which provides the content for thisInputStream
.
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer, int length)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending atreaderIndex + length
.- Parameters:
buffer
- The buffer which provides the content for thisInputStream
.length
- The length of the buffer to use for thisInputStream
.- Throws:
java.lang.IndexOutOfBoundsException
- ifreaderIndex + length
is greater thanwriterIndex
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer, boolean releaseOnClose)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending at the currentwriterIndex
.- Parameters:
buffer
- The buffer which provides the content for thisInputStream
.releaseOnClose
-true
means that whenInputStream.close()
is called thenByteBuf#release()
will be called onbuffer
.
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer, int length, boolean releaseOnClose)
Creates a new stream which reads data from the specifiedbuffer
starting at the currentreaderIndex
and ending atreaderIndex + length
.- Parameters:
buffer
- The buffer which provides the content for thisInputStream
.length
- The length of the buffer to use for thisInputStream
.releaseOnClose
-true
means that whenInputStream.close()
is called thenByteBuf#release()
will be called onbuffer
.- Throws:
java.lang.IndexOutOfBoundsException
- ifreaderIndex + length
is greater thanwriterIndex
-
-
Method Detail
-
readBytes
public int readBytes()
Returns the number of read bytes by this stream so far.
-
available
public int available() throws java.io.IOException
- Overrides:
available
in classjava.io.InputStream
- Throws:
java.io.IOException
-
mark
public void mark(int readlimit)
- Overrides:
mark
in classjava.io.InputStream
-
markSupported
public boolean markSupported()
- Overrides:
markSupported
in classjava.io.InputStream
-
read
public int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
reset
public void reset() throws java.io.IOException
- Overrides:
reset
in classjava.io.InputStream
- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skip
in classjava.io.InputStream
- Throws:
java.io.IOException
-
readBoolean
public boolean readBoolean() throws java.io.IOException
- Specified by:
readBoolean
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readByte
public byte readByte() throws java.io.IOException
- Specified by:
readByte
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readChar
public char readChar() throws java.io.IOException
- Specified by:
readChar
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readDouble
public double readDouble() throws java.io.IOException
- Specified by:
readDouble
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readFloat
public float readFloat() throws java.io.IOException
- Specified by:
readFloat
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] b) throws java.io.IOException
- Specified by:
readFully
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] b, int off, int len) throws java.io.IOException
- Specified by:
readFully
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOException
- Specified by:
readInt
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readLine
public java.lang.String readLine() throws java.io.IOException
- Specified by:
readLine
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readLong
public long readLong() throws java.io.IOException
- Specified by:
readLong
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readShort
public short readShort() throws java.io.IOException
- Specified by:
readShort
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readUTF
public java.lang.String readUTF() throws java.io.IOException
- Specified by:
readUTF
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readUnsignedByte
public int readUnsignedByte() throws java.io.IOException
- Specified by:
readUnsignedByte
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
readUnsignedShort
public int readUnsignedShort() throws java.io.IOException
- Specified by:
readUnsignedShort
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
skipBytes
public int skipBytes(int n) throws java.io.IOException
- Specified by:
skipBytes
in interfacejava.io.DataInput
- Throws:
java.io.IOException
-
-