Package io.netty.buffer
Class ByteBufInputStream
- java.lang.Object
-
- java.io.InputStream
-
- io.netty.buffer.ByteBufInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataInput,java.lang.AutoCloseable
public class ByteBufInputStream extends java.io.InputStream implements java.io.DataInputAnInputStreamwhich reads data from aByteBuf.A read operation against this stream will occur at the
readerIndexof its underlying buffer and thereaderIndexwill 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
DataInputfor 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 specifiedbufferstarting at the currentreaderIndexand ending at the currentwriterIndex.ByteBufInputStream(ByteBuf buffer, boolean releaseOnClose)Creates a new stream which reads data from the specifiedbufferstarting at the currentreaderIndexand ending at the currentwriterIndex.ByteBufInputStream(ByteBuf buffer, int length)Creates a new stream which reads data from the specifiedbufferstarting at the currentreaderIndexand ending atreaderIndex + length.ByteBufInputStream(ByteBuf buffer, int length, boolean releaseOnClose)Creates a new stream which reads data from the specifiedbufferstarting at the currentreaderIndexand ending atreaderIndex + length.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()voidclose()voidmark(int readlimit)booleanmarkSupported()intread()intread(byte[] b, int off, int len)booleanreadBoolean()bytereadByte()intreadBytes()Returns the number of read bytes by this stream so far.charreadChar()doublereadDouble()floatreadFloat()voidreadFully(byte[] b)voidreadFully(byte[] b, int off, int len)intreadInt()java.lang.StringreadLine()longreadLong()shortreadShort()intreadUnsignedByte()intreadUnsignedShort()java.lang.StringreadUTF()voidreset()longskip(long n)intskipBytes(int n)
-
-
-
Constructor Detail
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer)
Creates a new stream which reads data from the specifiedbufferstarting at the currentreaderIndexand 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 specifiedbufferstarting at the currentreaderIndexand 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 + lengthis greater thanwriterIndex
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer, boolean releaseOnClose)
Creates a new stream which reads data from the specifiedbufferstarting at the currentreaderIndexand ending at the currentwriterIndex.- Parameters:
buffer- The buffer which provides the content for thisInputStream.releaseOnClose-truemeans that whenclose()is called thenReferenceCounted.release()will be called onbuffer.
-
ByteBufInputStream
public ByteBufInputStream(ByteBuf buffer, int length, boolean releaseOnClose)
Creates a new stream which reads data from the specifiedbufferstarting at the currentreaderIndexand ending atreaderIndex + length.- Parameters:
buffer- The buffer which provides the content for thisInputStream.length- The length of the buffer to use for thisInputStream.releaseOnClose-truemeans that whenclose()is called thenReferenceCounted.release()will be called onbuffer.- Throws:
java.lang.IndexOutOfBoundsException- ifreaderIndex + lengthis greater thanwriterIndex
-
-
Method Detail
-
readBytes
public int readBytes()
Returns the number of read bytes by this stream so far.
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-
mark
public void mark(int readlimit)
- Overrides:
markin classjava.io.InputStream
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classjava.io.InputStream
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
reset
public void reset() throws java.io.IOException- Overrides:
resetin classjava.io.InputStream- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException- Overrides:
skipin classjava.io.InputStream- Throws:
java.io.IOException
-
readBoolean
public boolean readBoolean() throws java.io.IOException- Specified by:
readBooleanin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readByte
public byte readByte() throws java.io.IOException- Specified by:
readBytein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readChar
public char readChar() throws java.io.IOException- Specified by:
readCharin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readDouble
public double readDouble() throws java.io.IOException- Specified by:
readDoublein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readFloat
public float readFloat() throws java.io.IOException- Specified by:
readFloatin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] b) throws java.io.IOException- Specified by:
readFullyin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] b, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOException- Specified by:
readIntin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readLine
public java.lang.String readLine() throws java.io.IOException- Specified by:
readLinein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readLong
public long readLong() throws java.io.IOException- Specified by:
readLongin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readShort
public short readShort() throws java.io.IOException- Specified by:
readShortin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUTF
public java.lang.String readUTF() throws java.io.IOException- Specified by:
readUTFin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUnsignedByte
public int readUnsignedByte() throws java.io.IOException- Specified by:
readUnsignedBytein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUnsignedShort
public int readUnsignedShort() throws java.io.IOException- Specified by:
readUnsignedShortin interfacejava.io.DataInput- Throws:
java.io.IOException
-
skipBytes
public int skipBytes(int n) throws java.io.IOException- Specified by:
skipBytesin interfacejava.io.DataInput- Throws:
java.io.IOException
-
-