public abstract class HeapChannelBuffer extends AbstractChannelBuffer
限定符和类型 | 字段和说明 |
---|---|
protected byte[] |
array
The underlying heap byte array that this buffer is wrapping.
|
限定符 | 构造器和说明 |
---|---|
protected |
HeapChannelBuffer(byte[] array)
Creates a new heap buffer with an existing byte array.
|
protected |
HeapChannelBuffer(byte[] array,
int readerIndex,
int writerIndex)
Creates a new heap buffer with an existing byte array.
|
protected |
HeapChannelBuffer(int length)
Creates a new heap buffer with a newly allocated byte array.
|
限定符和类型 | 方法和说明 |
---|---|
byte[] |
array()
Returns the backing byte array of this buffer.
|
int |
arrayOffset()
Returns the offset of the first byte within the backing byte array of
this buffer.
|
int |
capacity()
Returns the number of bytes (octets) this buffer can contain.
|
byte |
getByte(int index)
Gets a byte at the specified absolute
index in this buffer. |
void |
getBytes(int index,
byte[] dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
void |
getBytes(int index,
java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index until the destination's position
reaches its limit. |
void |
getBytes(int index,
ChannelBuffer dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
int |
getBytes(int index,
java.nio.channels.GatheringByteChannel out,
int length)
Transfers this buffer's data to the specified channel starting at the
specified absolute
index . |
void |
getBytes(int index,
java.io.OutputStream out,
int length)
Transfers this buffer's data to the specified stream starting at the
specified absolute
index . |
boolean |
hasArray()
Returns
true if and only if this buffer has a backing byte array. |
boolean |
isDirect()
Returns
true if and only if this buffer is backed by an
NIO direct buffer. |
void |
setByte(int index,
int value)
Sets the specified byte at the specified absolute
index in this
buffer. |
void |
setBytes(int index,
byte[] src,
int srcIndex,
int length)
Transfers the specified source array's data to this buffer starting at
the specified absolute
index . |
void |
setBytes(int index,
java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index until the source buffer's position
reaches its limit. |
void |
setBytes(int index,
ChannelBuffer src,
int srcIndex,
int length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index . |
int |
setBytes(int index,
java.io.InputStream in,
int length)
Transfers the content of the specified source stream to this buffer
starting at the specified absolute
index . |
int |
setBytes(int index,
java.nio.channels.ScatteringByteChannel in,
int length)
Transfers the content of the specified source channel to this buffer
starting at the specified absolute
index . |
ChannelBuffer |
slice(int index,
int length)
Returns a slice of this buffer's sub-region.
|
java.nio.ByteBuffer |
toByteBuffer(int index,
int length)
Converts this buffer's sub-region into a NIO buffer.
|
bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, checkReadableBytes, clear, compareTo, copy, discardReadBytes, ensureWritableBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero
protected final byte[] array
protected HeapChannelBuffer(int length)
length
- the length of the new byte arrayprotected HeapChannelBuffer(byte[] array)
array
- the byte array to wrapprotected HeapChannelBuffer(byte[] array, int readerIndex, int writerIndex)
array
- the byte array to wrapreaderIndex
- the initial reader index of this bufferwriterIndex
- the initial writer index of this bufferpublic boolean isDirect()
ChannelBuffer
true
if and only if this buffer is backed by an
NIO direct buffer.public int capacity()
ChannelBuffer
public boolean hasArray()
ChannelBuffer
true
if and only if this buffer has a backing byte array.
If this method returns true, you can safely call ChannelBuffer.array()
and
ChannelBuffer.arrayOffset()
.public byte[] array()
ChannelBuffer
public int arrayOffset()
ChannelBuffer
public byte getByte(int index)
ChannelBuffer
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length)
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of both the source (i.e. this
) and the destination.dstIndex
- the first index of the destinationlength
- the number of bytes to transferpublic void getBytes(int index, byte[] dst, int dstIndex, int length)
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of this buffer.dstIndex
- the first index of the destinationlength
- the number of bytes to transferpublic void getBytes(int index, java.nio.ByteBuffer dst)
ChannelBuffer
index
until the destination's position
reaches its limit.
This method does not modify readerIndex
or writerIndex
of
this buffer while the destination's position
will be increased.public void getBytes(int index, java.io.OutputStream out, int length) throws java.io.IOException
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.length
- the number of bytes to transferjava.io.IOException
- if the specified stream threw an exception during I/Opublic int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.length
- the maximum number of bytes to transferjava.io.IOException
- if the specified channel threw an exception during I/Opublic void setByte(int index, int value)
ChannelBuffer
index
in this
buffer. The 24 high-order bits of the specified value are ignored.
This method does not modify readerIndex
or writerIndex
of
this buffer.public void setBytes(int index, ChannelBuffer src, int srcIndex, int length)
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of both the source (i.e. this
) and the destination.srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic void setBytes(int index, byte[] src, int srcIndex, int length)
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public void setBytes(int index, java.nio.ByteBuffer src)
ChannelBuffer
index
until the source buffer's position
reaches its limit.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int setBytes(int index, java.io.InputStream in, int length) throws java.io.IOException
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.length
- the number of bytes to transfer-1
if the specified channel is closed.java.io.IOException
- if the specified stream threw an exception during I/Opublic int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOException
ChannelBuffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.length
- the maximum number of bytes to transfer-1
if the specified channel is closed.java.io.IOException
- if the specified channel threw an exception during I/Opublic ChannelBuffer slice(int index, int length)
ChannelBuffer
readerIndex
or writerIndex
of
this buffer.public java.nio.ByteBuffer toByteBuffer(int index, int length)
ChannelBuffer
readerIndex
or writerIndex
of
this buffer.