referenceloading bufferr是什么

ChannelBuffer (The Netty Project API Reference (3.2.6.Final))
org.jboss.netty.buffer
Interface ChannelBuffer
All Superinterfaces: &&
All Known Subinterfaces:
All Known Implementing Classes: , , , , , , , , , ,
public interface ChannelBufferextends &&
A random and sequential accessible sequence of zero or more bytes (octets).
This interface provides an abstract view for one or more primitive byte
arrays (byte[]) and .
Creation of a buffer
It is recommended to create a new buffer using the helper methods in
rather than calling an individual implementation's
constructor.
Random Access Indexing
Just like an ordinary primitive byte array,
It means the index of the first byte is always 0 and the index of
the last byte is always .
For example, to
iterate all bytes of a buffer, you can do the following, regardless of
its internal implementation:
buffer = ...;
for (int i = 0; i & buffer.capacity(); i ++) {
byte b = buffer.getByte(i);
System.out.println((char) b);
Sequential Access Indexing
provides two pointer variables to support sequential
read and write operations -
for a read
operation and
for a write operation
respectively.
The following diagram shows how a buffer is segmented into
three areas by the two pointers:
+-------------------+------------------+------------------+
| discardable bytes |
readable bytes
writable bytes
+-------------------+------------------+------------------+
readerIndex
writerIndex
Readable bytes (the actual content)
This segment is where the actual data is stored.
Any operation whose name
starts with read or skip will get or skip the data at the
and increase it by the number of
read bytes.
If the argument of the read operation is also a
and no destination index is specified, the specified
is increased together.
If there's not enough content left,
The default value of newly allocated, wrapped or copied buffer's
// Iterates the readable bytes of a buffer.
buffer = ...;
while (buffer.readable()) {
System.out.println(buffer.readByte());
Writable bytes
This segment is a undefined space which needs to be filled.
Any operation
whose name ends with write will write the data at the current
and increase it by the number of written
If the argument of the write operation is also a ,
and no source index is specified, the specified buffer's
is increased together.
If there's not enough writable bytes left,
is raised.
The default value of newly allocated buffer's
The default value of
wrapped or copied buffer's
of the buffer.
// Fills the writable bytes of a buffer with random integers.
buffer = ...;
while (buffer.writableBytes() >= 4) {
buffer.writeInt(random.nextInt());
Discardable bytes
This segment contains the bytes which were read already by a read operation.
Initially, the size of this segment is 0, but its size increases up
as read operations are executed.
The read bytes can be discarded by calling
reclaim unused area as depicted by the following diagram:
BEFORE discardReadBytes()
+-------------------+------------------+------------------+
| discardable bytes |
readable bytes
writable bytes
+-------------------+------------------+------------------+
readerIndex
writerIndex
AFTER discardReadBytes()
+------------------+--------------------------------------+
readable bytes
writable bytes (got more space)
+------------------+--------------------------------------+
readerIndex (0) <= writerIndex (decreased)
Please note that there is no guarantee about the content of writable bytes
after calling .
The writable bytes will not be
moved in most cases and could even be filled with completely different data
depending on the underlying buffer implementation.
Clearing the buffer indexes
You can set both
to 0 by calling .
It does not clear the buffer content (e.g. filling with 0) but just
clears the two pointers.
Please also note that the semantic of this
operation is different from .
BEFORE clear()
+-------------------+------------------+------------------+
| discardable bytes |
readable bytes
writable bytes
+-------------------+------------------+------------------+
readerIndex
writerIndex
AFTER clear()
+---------------------------------------------------------+
writable bytes (got more space)
+---------------------------------------------------------+
0 = readerIndex = writerIndex
Search operations
methods help you locate an index of
a value which meets a certain criteria.
Complicated dynamic sequential
search can be done with
as well as simple
static single byte search.
If you are decoding variable length data such as NUL-terminated string, you
also useful.
Mark and reset
There are two marker indexes in every buffer. One is for storing
and the other is for storing
You can always reposition one of the
two indexes by calling a reset method.
It works in a similar fashion to
the mark and reset methods in
except that there's no
readlimit.
Derived buffers
You can create a view of an existing buffer by calling either
A derived buffer will have an independent ,
and marker indexes, while it shares
other internal data representation, just like a NIO buffer does.
In case a completely fresh copy of an existing buffer is required, please
method instead.
Conversion to existing JDK types
Byte array
is backed by a byte array (i.e. byte[]),
you can access it directly via the
To determine
if a buffer is backed by a byte array,
should be used.
NIO Buffers
methods convert
into one or more NIO buffers.
These methods avoid
buffer allocation and memory copy whenever possible, but there's no
guarantee that memory copy will not be involved.
methods convert a
Please note that
conversion method.
I/O Streams
Please refer to
$Rev: 2268 $, $Date:
16:33:26 +0900 (Thu, 06 May 2010) $
&&&&&&&&&&Returns the backing byte array of this buffer.
&&&&&&&&&&Returns the offset of the first byte within the backing byte array of
this buffer.
(byte&value)
&&&&&&&&&&Locates the first occurrence of the specified value in this
(&indexFinder)
&&&&&&&&&&Locates the first place where the specified indexFinder returns
(int&length,
byte&value)
&&&&&&&&&&Locates the first occurrence of the specified value in this
(int&length,
&indexFinder)
&&&&&&&&&&Locates the first place where the specified indexFinder returns
(int&index,
int&length,
byte&value)
&&&&&&&&&&Locates the first occurrence of the specified value in this
(int&index,
int&length,
&indexFinder)
&&&&&&&&&&Locates the first place where the specified indexFinder returns
&&&&&&&&&&Returns the number of bytes (octets) this buffer can contain.
&&&&&&&&&&Sets the readerIndex and writerIndex of this buffer to
&&&&&&&&&&Compares the content of the specified buffer to the content of this
&&&&&&&&&&Returns a copy of this buffer's readable bytes.
(int&index,
int&length)
&&&&&&&&&&Returns a copy of this buffer's sub-region.
&&&&&&&&&&Discards the bytes between the 0th index and readerIndex.
&&&&&&&&&&Returns a buffer which shares the whole region of this buffer.
(int&writableBytes)
&&&&&&&&&&Makes sure the number of
is equal to or greater than the specified value.
&&&&&&&&&&Determines if the content of the specified buffer is identical to the
content of this array.
&&&&&&&&&&Returns the factory which creates a
type and default
are same with this buffer.
(int&index)
&&&&&&&&&&Gets a byte at the specified absolute index in this buffer.
(int&index,
byte[]&dst)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the specified absolute index.
(int&index,
byte[]&dst,
int&dstIndex,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the specified absolute index.
(int&index,
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the specified absolute index until the destination's position
reaches its limit.
(int&index,
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the specified absolute index until the destination becomes
non-writable.
(int&index,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the specified absolute index.
(int&index,
int&dstIndex,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the specified absolute index.
(int&index,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified channel starting at the
specified absolute index.
(int&index,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified stream starting at the
specified absolute index.
(int&index)
&&&&&&&&&&Gets a 2-byte UTF-16 character at the specified absolute
index in this buffer.
(int&index)
&&&&&&&&&&Gets a 64-bit floating point number at the specified absolute
index in this buffer.
(int&index)
&&&&&&&&&&Gets a 32-bit floating point number at the specified absolute
index in this buffer.
(int&index)
&&&&&&&&&&Gets a 32-bit integer at the specified absolute index in
this buffer.
(int&index)
&&&&&&&&&&Gets a 64-bit long integer at the specified absolute index in
this buffer.
(int&index)
&&&&&&&&&&Gets a 24-bit medium integer at the specified absolute index in
this buffer.
(int&index)
&&&&&&&&&&Gets a 16-bit short integer at the specified absolute index in
this buffer.
(int&index)
&&&&&&&&&&Gets an unsigned byte at the specified absolute index in this
(int&index)
&&&&&&&&&&Gets an unsigned 32-bit integer at the specified absolute index
in this buffer.
(int&index)
&&&&&&&&&&Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer.
(int&index)
&&&&&&&&&&Gets an unsigned 16-bit short integer at the specified absolute
index in this buffer.
&&&&&&&&&&Returns true if and only if this buffer has a backing byte array.
&&&&&&&&&&Returns a hash code which was calculated from the content of this
(int&fromIndex,
int&toIndex,
byte&value)
&&&&&&&&&&Locates the first occurrence of the specified value in this
(int&fromIndex,
int&toIndex,
&indexFinder)
&&&&&&&&&&Locates the first place where the specified indexFinder
returns true.
&&&&&&&&&&Returns true if and only if this buffer is backed by an
NIO direct buffer.
&&&&&&&&&&Marks the current readerIndex in this buffer.
&&&&&&&&&&Marks the current writerIndex in this buffer.
&&&&&&&&&&Returns the
of this buffer.
&&&&&&&&&&Returns true
if and only if (this.writerIndex - this.readerIndex) is greater
&&&&&&&&&&Returns the number of readable bytes which is equal to
(this.writerIndex - this.readerIndex).
&&&&&&&&&&Gets a byte at the current readerIndex and increases
the readerIndex by 1 in this buffer.
(byte[]&dst)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= dst.length).
(byte[]&dst,
int&dstIndex,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the current readerIndex until the destination's position
reaches its limit, and increases the readerIndex by the
number of the transferred bytes.
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the current readerIndex until the destination becomes
non-writable, and increases the readerIndex by the number of the
transferred bytes.
(&indexFinder)
&&&&&&&&&&Deprecated.&Use
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
int&dstIndex,
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified stream starting at the
current readerIndex.
(int&length)
&&&&&&&&&&Transfers this buffer's data to a newly created buffer starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
int&length)
&&&&&&&&&&Transfers this buffer's data to the specified stream starting at the
current readerIndex.
&&&&&&&&&&Gets a 2-byte UTF-16 character at the current readerIndex
and increases the readerIndex by 2 in this buffer.
&&&&&&&&&&Gets a 64-bit floating point number at the current readerIndex
and increases the readerIndex by 8 in this buffer.
&&&&&&&&&&Returns the readerIndex of this buffer.
(int&readerIndex)
&&&&&&&&&&Sets the readerIndex of this buffer.
&&&&&&&&&&Gets a 32-bit floating point number at the current readerIndex
and increases the readerIndex by 4 in this buffer.
&&&&&&&&&&Gets a 32-bit integer at the current readerIndex
and increases the readerIndex by 4 in this buffer.
&&&&&&&&&&Gets a 64-bit integer at the current readerIndex
and increases the readerIndex by 8 in this buffer.
&&&&&&&&&&Gets a 24-bit medium integer at the current readerIndex
and increases the readerIndex by 3 in this buffer.
&&&&&&&&&&Gets a 16-bit short integer at the current readerIndex
and increases the readerIndex by 2 in this buffer.
(&indexFinder)
&&&&&&&&&&Deprecated.&Use
(int&length)
&&&&&&&&&&Returns a new slice of this buffer's sub-region starting at the current
readerIndex and increases the readerIndex by the size
of the new slice (= length).
&&&&&&&&&&Gets an unsigned byte at the current readerIndex and increases
the readerIndex by 1 in this buffer.
&&&&&&&&&&Gets an unsigned 32-bit integer at the current readerIndex
and increases the readerIndex by 4 in this buffer.
&&&&&&&&&&Gets an unsigned 24-bit medium integer at the current readerIndex
and increases the readerIndex by 3 in this buffer.
&&&&&&&&&&Gets an unsigned 16-bit short integer at the current readerIndex
and increases the readerIndex by 2 in this buffer.
&&&&&&&&&&Repositions the current readerIndex to the marked
readerIndex in this buffer.
&&&&&&&&&&Repositions the current writerIndex to the marked
writerIndex in this buffer.
(int&index,
int&value)
&&&&&&&&&&Sets the specified byte at the specified absolute index in this
(int&index,
byte[]&src)
&&&&&&&&&&Transfers the specified source array's data to this buffer starting at
the specified absolute index.
(int&index,
byte[]&src,
int&srcIndex,
int&length)
&&&&&&&&&&Transfers the specified source array's data to this buffer starting at
the specified absolute index.
(int&index,
&&&&&&&&&&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.
(int&index,
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the specified absolute index until the source buffer becomes
unreadable.
(int&index,
int&length)
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the specified absolute index.
(int&index,
int&srcIndex,
int&length)
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the specified absolute index.
(int&index,
int&length)
&&&&&&&&&&Transfers the content of the specified source stream to this buffer
starting at the specified absolute index.
(int&index,
int&length)
&&&&&&&&&&Transfers the content of the specified source channel to this buffer
starting at the specified absolute index.
(int&index,
int&value)
&&&&&&&&&&Sets the specified 2-byte UTF-16 character at the specified absolute
index in this buffer.
(int&index,
double&value)
&&&&&&&&&&Sets the specified 64-bit floating-point number at the specified
absolute index in this buffer.
(int&index,
float&value)
&&&&&&&&&&Sets the specified 32-bit floating-point number at the specified
absolute index in this buffer.
(int&readerIndex,
int&writerIndex)
&&&&&&&&&&Sets the readerIndex and writerIndex of this buffer
in one shot.
(int&index,
int&value)
&&&&&&&&&&Sets the specified 32-bit integer at the specified absolute
index in this buffer.
(int&index,
long&value)
&&&&&&&&&&Sets the specified 64-bit long integer at the specified absolute
index in this buffer.
(int&index,
int&value)
&&&&&&&&&&Sets the specified 24-bit medium integer at the specified absolute
index in this buffer.
(int&index,
int&value)
&&&&&&&&&&Sets the specified 16-bit short integer at the specified absolute
index in this buffer.
(int&index,
int&length)
&&&&&&&&&&Fills this buffer with NUL (0x00) starting at the specified
absolute index.
(&indexFinder)
&&&&&&&&&&Deprecated.&Use
(int&length)
&&&&&&&&&&Increases the current readerIndex by the specified
length in this buffer.
&&&&&&&&&&Returns a slice of this buffer's readable bytes.
(int&index,
int&length)
&&&&&&&&&&Returns a slice of this buffer's sub-region.
&&&&&&&&&&Converts this buffer's readable bytes into a NIO buffer.
(int&index,
int&length)
&&&&&&&&&&Converts this buffer's sub-region into a NIO buffer.
&&&&&&&&&&Converts this buffer's readable bytes into an array of NIO buffers.
(int&index,
int&length)
&&&&&&&&&&Converts this buffer's sub-region into an array of NIO buffers.
&&&&&&&&&&Returns the string representation of this buffer.
(&charset)
&&&&&&&&&&Decodes this buffer's readable bytes into a string with the specified
character set name.
(int&index,
int&length,
&&&&&&&&&&Decodes this buffer's sub-region into a string with the specified
character set.
(int&index,
int&length,
&charsetName)
&&&&&&&&&&Deprecated.&Use
(int&index,
int&length,
&charsetName,
&terminatorFinder)
&&&&&&&&&&Deprecated.&Use
(&charsetName)
&&&&&&&&&&Deprecated.&Use
(&charsetName,
&terminatorFinder)
&&&&&&&&&&Deprecated.&Use
&&&&&&&&&&Returns true
if and only if (this.capacity - this.writerIndex) is greater
&&&&&&&&&&Returns the number of writable bytes which is equal to
(this.capacity - this.writerIndex).
(int&value)
&&&&&&&&&&Sets the specified byte at the current writerIndex
and increases the writerIndex by 1 in this buffer.
(byte[]&src)
&&&&&&&&&&Transfers the specified source array's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= src.length).
(byte[]&src,
int&srcIndex,
int&length)
&&&&&&&&&&Transfers the specified source array's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= length).
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the current writerIndex until the source buffer's position
reaches its limit, and increases the writerIndex by the
number of the transferred bytes.
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the current writerIndex until the source buffer becomes
unreadable, and increases the writerIndex by the number of
the transferred bytes.
int&length)
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= length).
int&srcIndex,
int&length)
&&&&&&&&&&Transfers the specified source buffer's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= length).
int&length)
&&&&&&&&&&Transfers the content of the specified stream to this buffer
starting at the current writerIndex and increases the
writerIndex by the number of the transferred bytes.
int&length)
&&&&&&&&&&Transfers the content of the specified channel to this buffer
starting at the current writerIndex and increases the
writerIndex by the number of the transferred bytes.
(int&value)
&&&&&&&&&&Sets the specified 2-byte UTF-16 character at the current
writerIndex and increases the writerIndex by 2
in this buffer.
(double&value)
&&&&&&&&&&Sets the specified 64-bit floating point number at the current
writerIndex and increases the writerIndex by 8
in this buffer.
(float&value)
&&&&&&&&&&Sets the specified 32-bit floating point number at the current
writerIndex and increases the writerIndex by 4
in this buffer.
(int&value)
&&&&&&&&&&Sets the specified 32-bit integer at the current writerIndex
and increases the writerIndex by 4 in this buffer.
(long&value)
&&&&&&&&&&Sets the specified 64-bit long integer at the current
writerIndex and increases the writerIndex by 8
in this buffer.
(int&value)
&&&&&&&&&&Sets the specified 24-bit medium integer at the current
writerIndex and increases the writerIndex by 3
in this buffer.
&&&&&&&&&&Returns the writerIndex of this buffer.
(int&writerIndex)
&&&&&&&&&&Sets the writerIndex of this buffer.
(int&value)
&&&&&&&&&&Sets the specified 16-bit short integer at the current
writerIndex and increases the writerIndex by 2
in this buffer.
(int&length)
&&&&&&&&&&Fills this buffer with NUL (0x00) starting at the current
writerIndex and increases the writerIndex by the
specified length.
Returns the factory which creates a
type and default
are same with this buffer.
int capacity()
Returns the number of bytes (octets) this buffer can contain.
Returns the
of this buffer.
boolean isDirect()
Returns true if and only if this buffer is backed by an
NIO direct buffer.
readerIndex
int readerIndex()
Returns the readerIndex of this buffer.
readerIndex
void readerIndex(int&readerIndex)
Sets the readerIndex of this buffer.
- if the specified readerIndex is
less than 0 or
greater than this.writerIndex
writerIndex
int writerIndex()
Returns the writerIndex of this buffer.
writerIndex
void writerIndex(int&writerIndex)
Sets the writerIndex of this buffer.
- if the specified writerIndex is
less than this.readerIndex or
greater than this.capacity
void setIndex(int&readerIndex,
int&writerIndex)
Sets the readerIndex and writerIndex of this buffer
in one shot.
This method is useful when you have to worry about the
invocation order of
For example, the following code will fail:
// Create a buffer whose readerIndex, writerIndex and capacity are
// 0, 0 and 8 respectively.
buf = .buffer(8);
// IndexOutOfBoundsException is thrown because the specified
// readerIndex (2) cannot be greater than the current writerIndex (0).
buf.readerIndex(2);
buf.writerIndex(4);
The following code will also fail:
// Create a buffer whose readerIndex, writerIndex and capacity are
// 0, 8 and 8 respectively.
buf = .wrappedBuffer(new byte[8]);
// readerIndex becomes 8.
buf.readLong();
// IndexOutOfBoundsException is thrown because the specified
// writerIndex (4) cannot be less than the current readerIndex (8).
buf.writerIndex(4);
buf.readerIndex(2);
By contrast,
guarantees that it never
as long as the specified
indexes meet basic constraints, regardless what the current index
values of the buffer are:
// No matter what the current state of the buffer is, the following
// call always succeeds as long as the capacity of the buffer is not
// less than 4.
buf.setIndex(2, 4);
- if the specified readerIndex is less than 0,
if the specified writerIndex is less than the specified
readerIndex or if the specified writerIndex is
greater than this.capacity
readableBytes
int readableBytes()
Returns the number of readable bytes which is equal to
(this.writerIndex - this.readerIndex).
writableBytes
int writableBytes()
Returns the number of writable bytes which is equal to
(this.capacity - this.writerIndex).
boolean readable()
Returns true
if and only if (this.writerIndex - this.readerIndex) is greater
boolean writable()
Returns true
if and only if (this.capacity - this.writerIndex) is greater
void clear()
Sets the readerIndex and writerIndex of this buffer to
This method is identical to .
Please note that the behavior of this method is different
from that of NIO buffer, which sets the limit to
the capacity of the buffer.
markReaderIndex
void markReaderIndex()
Marks the current readerIndex in this buffer.
reposition the current readerIndex to the marked
readerIndex by calling .
The initial value of the marked readerIndex is 0.
resetReaderIndex
void resetReaderIndex()
Repositions the current readerIndex to the marked
readerIndex in this buffer.
- if the current writerIndex is less than the marked
readerIndex
markWriterIndex
void markWriterIndex()
Marks the current writerIndex in this buffer.
reposition the current writerIndex to the marked
writerIndex by calling .
The initial value of the marked writerIndex is 0.
resetWriterIndex
void resetWriterIndex()
Repositions the current writerIndex to the marked
writerIndex in this buffer.
- if the current readerIndex is greater than the marked
writerIndex
discardReadBytes
void discardReadBytes()
Discards the bytes between the 0th index and readerIndex.
It moves the bytes between readerIndex and writerIndex
to the 0th index, and sets readerIndex and writerIndex
to 0 and oldWriterIndex - oldReaderIndex respectively.
Please refer to the class documentation for more detailed explanation.
ensureWritableBytes
void ensureWritableBytes(int&writableBytes)
Makes sure the number of
is equal to or greater than the specified value.
If there is enough
writable bytes in this buffer, this method returns with no side effect.
Otherwise:
a non-dynamic buffer will throw an .
a dynamic buffer will expand its capacity so that the number of the
becomes equal to or greater
than the specified value. The expansion involves the reallocation of
the internal buffer and consequently memory copy.
Parameters:writableBytes - the expected minimum number of writable bytes
buffer is less than the specified value and if this buffer is
not a dynamic buffer
byte getByte(int&index)
Gets a byte at the specified absolute index in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 1 is greater than this.capacity
getUnsignedByte
short getUnsignedByte(int&index)
Gets an unsigned byte at the specified absolute index in this
This method does not modify readerIndex or
writerIndex of this buffer.
- if the specified index is less than 0 or
index + 1 is greater than this.capacity
short getShort(int&index)
Gets a 16-bit short integer at the specified absolute index in
this buffer.
This method does not modify readerIndex or
writerIndex of this buffer.
- if the specified index is less than 0 or
index + 2 is greater than this.capacity
getUnsignedShort
int getUnsignedShort(int&index)
Gets an unsigned 16-bit short integer at the specified absolute
index in this buffer.
This method does not modify
readerIndex or writerIndex of this buffer.
- if the specified index is less than 0 or
index + 2 is greater than this.capacity
int getMedium(int&index)
Gets a 24-bit medium integer at the specified absolute index in
this buffer.
This method does not modify readerIndex or
writerIndex of this buffer.
- if the specified index is less than 0 or
index + 3 is greater than this.capacity
getUnsignedMedium
int getUnsignedMedium(int&index)
Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer.
This method does not modify
readerIndex or writerIndex of this buffer.
- if the specified index is less than 0 or
index + 3 is greater than this.capacity
int getInt(int&index)
Gets a 32-bit integer at the specified absolute index in
this buffer.
This method does not modify readerIndex or
writerIndex of this buffer.
- if the specified index is less than 0 or
index + 4 is greater than this.capacity
getUnsignedInt
long getUnsignedInt(int&index)
Gets an unsigned 32-bit integer at the specified absolute index
in this buffer.
This method does not modify readerIndex or
writerIndex of this buffer.
- if the specified index is less than 0 or
index + 4 is greater than this.capacity
long getLong(int&index)
Gets a 64-bit long integer at the specified absolute index in
this buffer.
This method does not modify readerIndex or
writerIndex of this buffer.
- if the specified index is less than 0 or
index + 8 is greater than this.capacity
char getChar(int&index)
Gets a 2-byte UTF-16 character at the specified absolute
index in this buffer.
This method does not modify
readerIndex or writerIndex of this buffer.
- if the specified index is less than 0 or
index + 2 is greater than this.capacity
float getFloat(int&index)
Gets a 32-bit floating point number at the specified absolute
index in this buffer.
This method does not modify
readerIndex or writerIndex of this buffer.
- if the specified index is less than 0 or
index + 4 is greater than this.capacity
double getDouble(int&index)
Gets a 64-bit floating point number at the specified absolute
index in this buffer.
This method does not modify
readerIndex or writerIndex of this buffer.
- if the specified index is less than 0 or
index + 8 is greater than this.capacity
void getBytes(int&index,
Transfers this buffer's data to the specified destination starting at
the specified absolute index until the destination becomes
non-writable.
This method is basically same with
, except that this
method increases the writerIndex of the destination by the
number of the transferred bytes while
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).
- if the specified index is less than 0 or
if index + dst.writableBytes is greater than
this.capacity
void getBytes(int&index,
int&length)
Transfers this buffer's data to the specified destination starting at
the specified absolute index.
This method is basically same
with , except that this
method increases the writerIndex of the destination by the
number of the transferred bytes while
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).
Parameters:length - the number of bytes to transfer
- if the specified index is less than 0,
if index + length is greater than
this.capacity, or
if length is greater than dst.writableBytes
void getBytes(int&index,
int&dstIndex,
int&length)
Transfers this buffer's data to the specified destination starting at
the specified absolute index.
This method does not modify readerIndex or writerIndex
of both the source (i.e. this) and the destination.
Parameters:dstIndex - the first index of the destinationlength - the number of bytes to transfer
- if the specified index is less than 0,
if the specified dstIndex is less than 0,
if index + length is greater than
this.capacity, or
if dstIndex + length is greater than
dst.capacity
void getBytes(int&index,
byte[]&dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute index.
This method does not modify readerIndex or writerIndex of
this buffer
- if the specified index is less than 0 or
if index + dst.length is greater than
this.capacity
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.
This method does not modify readerIndex or writerIndex
of this buffer.
Parameters:dstIndex - the first index of the destinationlength - the number of bytes to transfer
- if the specified index is less than 0,
if the specified dstIndex is less than 0,
if index + length is greater than
this.capacity, or
if dstIndex + length is greater than
dst.length
void getBytes(int&index,
Transfers this buffer's data to the specified destination starting at
the specified absolute 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.
- if the specified index is less than 0 or
if index + dst.remaining() is greater than
this.capacity
void getBytes(int&index,
int&length)
Transfers this buffer's data to the specified stream starting at the
specified absolute index.
This method does not modify readerIndex or writerIndex of
this buffer.
Parameters:length - the number of bytes to transfer
- if the specified index is less than 0 or
if index + length is greater than
this.capacity
- if the specified stream threw an exception during I/O
int getBytes(int&index,
int&length)
Transfers this buffer's data to the specified channel starting at the
specified absolute index.
This method does not modify readerIndex or writerIndex of
this buffer.
Parameters:length - the maximum number of bytes to transfer
Returns:the actual number of bytes written out to the specified channel
- if the specified index is less than 0 or
if index + length is greater than
this.capacity
- if the specified channel threw an exception during I/O
void setByte(int&index,
int&value)
Sets the specified byte at the specified absolute index in this
The 24 high-order bits of the specified value are ignored.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 1 is greater than this.capacity
void setShort(int&index,
int&value)
Sets the specified 16-bit short integer at the specified absolute
index in this buffer.
The 16 high-order bits of the specified
value are ignored.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 2 is greater than this.capacity
void setMedium(int&index,
int&value)
Sets the specified 24-bit medium integer at the specified absolute
index in this buffer.
Please note that the most significant
byte is ignored in the specified value.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 3 is greater than this.capacity
void setInt(int&index,
int&value)
Sets the specified 32-bit integer at the specified absolute
index in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 4 is greater than this.capacity
void setLong(int&index,
long&value)
Sets the specified 64-bit long integer at the specified absolute
index in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 8 is greater than this.capacity
void setChar(int&index,
int&value)
Sets the specified 2-byte UTF-16 character at the specified absolute
index in this buffer.
The 16 high-order bits of the specified value are ignored.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 2 is greater than this.capacity
void setFloat(int&index,
float&value)
Sets the specified 32-bit floating-point number at the specified
absolute index in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 4 is greater than this.capacity
void setDouble(int&index,
double&value)
Sets the specified 64-bit floating-point number at the specified
absolute index in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
index + 8 is greater than this.capacity
void setBytes(int&index,
Transfers the specified source buffer's data to this buffer starting at
the specified absolute index until the source buffer becomes
unreadable.
This method is basically same with
, except that this
method increases the readerIndex of the source buffer by
the number of the transferred bytes while
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).
- if the specified index is less than 0 or
if index + src.readableBytes is greater than
this.capacity
void setBytes(int&index,
int&length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute index.
This method is basically same
with , except that this
method increases the readerIndex of the source buffer by
the number of the transferred bytes while
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).
Parameters:length - the number of bytes to transfer
- if the specified index is less than 0,
if index + length is greater than
this.capacity, or
if length is greater than src.readableBytes
void setBytes(int&index,
int&srcIndex,
int&length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute index.
This method does not modify readerIndex or writerIndex
of both the source (i.e. this) and the destination.
Parameters:srcIndex - the first index of the sourcelength - the number of bytes to transfer
- if the specified index is less than 0,
if the specified srcIndex is less than 0,
if index + length is greater than
this.capacity, or
if srcIndex + length is greater than
src.capacity
void setBytes(int&index,
byte[]&src)
Transfers the specified source array's data to this buffer starting at
the specified absolute index.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
if index + src.length is greater than
this.capacity
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.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0,
if the specified srcIndex is less than 0,
if index + length is greater than
this.capacity, or
if srcIndex + length is greater than src.length
void setBytes(int&index,
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.
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified index is less than 0 or
if index + src.remaining() is greater than
this.capacity
int setBytes(int&index,
int&length)
Transfers the content of the specified source stream to this buffer
starting at the specified absolute index.
This method does not modify readerIndex or writerIndex of
this buffer.
Parameters:length - the number of bytes to transfer
Returns:the actual number of bytes read in from the specified channel.
-1 if the specified channel is closed.
- if the specified index is less than 0 or
if index + length is greater than this.capacity
- if the specified stream threw an exception during I/O
int setBytes(int&index,
int&length)
Transfers the content of the specified source channel to this buffer
starting at the specified absolute index.
This method does not modify readerIndex or writerIndex of
this buffer.
Parameters:length - the maximum number of bytes to transfer
Returns:the actual number of bytes read in from the specified channel.
-1 if the specified channel is closed.
- if the specified index is less than 0 or
if index + length is greater than this.capacity
- if the specified channel threw an exception during I/O
void setZero(int&index,
int&length)
Fills this buffer with NUL (0x00) starting at the specified
absolute index.
This method does not modify readerIndex or writerIndex of
this buffer.
Parameters:length - the number of NULs to write to the buffer
- if the specified index is less than 0 or
if index + length is greater than this.capacity
byte readByte()
Gets a byte at the current readerIndex and increases
the readerIndex by 1 in this buffer.
- if this.readableBytes is less than 1
readUnsignedByte
short readUnsignedByte()
Gets an unsigned byte at the current readerIndex and increases
the readerIndex by 1 in this buffer.
- if this.readableBytes is less than 1
short readShort()
Gets a 16-bit short integer at the current readerIndex
and increases the readerIndex by 2 in this buffer.
- if this.readableBytes is less than 2
readUnsignedShort
int readUnsignedShort()
Gets an unsigned 16-bit short integer at the current readerIndex
and increases the readerIndex by 2 in this buffer.
- if this.readableBytes is less than 2
readMedium
int readMedium()
Gets a 24-bit medium integer at the current readerIndex
and increases the readerIndex by 3 in this buffer.
- if this.readableBytes is less than 3
readUnsignedMedium
int readUnsignedMedium()
Gets an unsigned 24-bit medium integer at the current readerIndex
and increases the readerIndex by 3 in this buffer.
- if this.readableBytes is less than 3
int readInt()
Gets a 32-bit integer at the current readerIndex
and increases the readerIndex by 4 in this buffer.
- if this.readableBytes is less than 4
readUnsignedInt
long readUnsignedInt()
Gets an unsigned 32-bit integer at the current readerIndex
and increases the readerIndex by 4 in this buffer.
- if this.readableBytes is less than 4
long readLong()
Gets a 64-bit integer at the current readerIndex
and increases the readerIndex by 8 in this buffer.
- if this.readableBytes is less than 8
char readChar()
Gets a 2-byte UTF-16 character at the current readerIndex
and increases the readerIndex by 2 in this buffer.
- if this.readableBytes is less than 2
float readFloat()
Gets a 32-bit floating point number at the current readerIndex
and increases the readerIndex by 4 in this buffer.
- if this.readableBytes is less than 4
readDouble
double readDouble()
Gets a 64-bit floating point number at the current readerIndex
and increases the readerIndex by 8 in this buffer.
- if this.readableBytes is less than 8
readBytes(int&length)
Transfers this buffer's data to a newly created buffer starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
The returned buffer's readerIndex and writerIndex are
0 and length respectively.
Parameters:length - the number of bytes to transfer
Returns:the newly created buffer which contains the transferred bytes
- if length is greater than this.readableBytes
readBytes(&indexFinder)
Deprecated.&Use
readSlice(int&length)
Returns a new slice of this buffer's sub-region starting at the current
readerIndex and increases the readerIndex by the size
of the new slice (= length).
Parameters:length - the size of the new slice
Returns:the newly created slice
- if length is greater than this.readableBytes
readSlice(&indexFinder)
Deprecated.&Use
void readBytes(&dst)
Transfers this buffer's data to the specified destination starting at
the current readerIndex until the destination becomes
non-writable, and increases the readerIndex by the number of the
transferred bytes.
This method is basically same with
, except that this method
increases the writerIndex of the destination by the number of
the transferred bytes while
- if dst.writableBytes is greater than
this.readableBytes
void readBytes(&dst,
int&length)
Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
This method
is basically same with ,
except that this method increases the writerIndex of the
destination by the number of the transferred bytes (= length)
- if length is greater than this.readableBytes or
if length is greater than dst.writableBytes
void readBytes(&dst,
int&dstIndex,
int&length)
Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
Parameters:dstIndex - the first index of the destinationlength - the number of bytes to transfer
- if the specified dstIndex is less than 0,
if length is greater than this.readableBytes, or
if dstIndex + length is greater than
dst.capacity
void readBytes(byte[]&dst)
Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= dst.length).
- if dst.length is greater than this.readableBytes
void readBytes(byte[]&dst,
int&dstIndex,
int&length)
Transfers this buffer's data to the specified destination starting at
the current readerIndex and increases the readerIndex
by the number of the transferred bytes (= length).
Parameters:dstIndex - the first index of the destinationlength - the number of bytes to transfer
- if the specified dstIndex is less than 0,
if length is greater than this.readableBytes, or
if dstIndex + length is greater than dst.length
void readBytes(&dst)
Transfers this buffer's data to the specified destination starting at
the current readerIndex until the destination's position
reaches its limit, and increases the readerIndex by the
number of the transferred bytes.
- if dst.remaining() is greater than
this.readableBytes
void readBytes(&out,
int&length)
Transfers this buffer's data to the specified stream starting at the
current readerIndex.
Parameters:length - the number of bytes to transfer
- if length is greater than this.readableBytes
- if the specified stream threw an exception during I/O
int readBytes(&out,
int&length)
Transfers this buffer's data to the specified stream starting at the
current readerIndex.
Parameters:length - the maximum number of bytes to transfer
Returns:the actual number of bytes written out to the specified channel
- if length is greater than this.readableBytes
- if the specified channel threw an exception during I/O
void skipBytes(int&length)
Increases the current readerIndex by the specified
length in this buffer.
- if length is greater than this.readableBytes
int skipBytes(&indexFinder)
Deprecated.&Use
void writeByte(int&value)
Sets the specified byte at the current writerIndex
and increases the writerIndex by 1 in this buffer.
The 24 high-order bits of the specified value are ignored.
- if this.writableBytes is less than 1
writeShort
void writeShort(int&value)
Sets the specified 16-bit short integer at the current
writerIndex and increases the writerIndex by 2
in this buffer.
The 16 high-order bits of the specified value are ignored.
- if this.writableBytes is less than 2
writeMedium
void writeMedium(int&value)
Sets the specified 24-bit medium integer at the current
writerIndex and increases the writerIndex by 3
in this buffer.
- if this.writableBytes is less than 3
void writeInt(int&value)
Sets the specified 32-bit integer at the current writerIndex
and increases the writerIndex by 4 in this buffer.
- if this.writableBytes is less than 4
void writeLong(long&value)
Sets the specified 64-bit long integer at the current
writerIndex and increases the writerIndex by 8
in this buffer.
- if this.writableBytes is less than 8
void writeChar(int&value)
Sets the specified 2-byte UTF-16 character at the current
writerIndex and increases the writerIndex by 2
in this buffer.
The 16 high-order bits of the specified value are ignored.
- if this.writableBytes is less than 2
writeFloat
void writeFloat(float&value)
Sets the specified 32-bit floating point number at the current
writerIndex and increases the writerIndex by 4
in this buffer.
- if this.writableBytes is less than 4
writeDouble
void writeDouble(double&value)
Sets the specified 64-bit floating point number at the current
writerIndex and increases the writerIndex by 8
in this buffer.
- if this.writableBytes is less than 8
writeBytes
void writeBytes(&src)
Transfers the specified source buffer's data to this buffer starting at
the current writerIndex until the source buffer becomes
unreadable, and increases the writerIndex by the number of
the transferred bytes.
This method is basically same with
, except that this method
increases the readerIndex of the source buffer by the number of
the transferred bytes while
- if src.readableBytes is greater than
this.writableBytes
writeBytes
void writeBytes(&src,
int&length)
Transfers the specified source buffer's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= length).
This method
is basically same with ,
except that this method increases the readerIndex of the source
buffer by the number of the transferred bytes (= length) while
Parameters:length - the number of bytes to transfer
- if length is greater than this.writableBytes or
if length is greater then src.readableBytes
writeBytes
void writeBytes(&src,
int&srcIndex,
int&length)
Transfers the specified source buffer's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= length).
Parameters:srcIndex - the first index of the sourcelength - the number of bytes to transfer
- if the specified srcIndex is less than 0,
if srcIndex + length is greater than
src.capacity, or
if length is greater than this.writableBytes
writeBytes
void writeBytes(byte[]&src)
Transfers the specified source array's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= src.length).
- if src.length is greater than this.writableBytes
writeBytes
void writeBytes(byte[]&src,
int&srcIndex,
int&length)
Transfers the specified source array's data to this buffer starting at
the current writerIndex and increases the writerIndex
by the number of the transferred bytes (= length).
Parameters:srcIndex - the first index of the sourcelength - the number of bytes to transfer
- if the specified srcIndex is less than 0,
if srcIndex + length is greater than
src.length, or
if length is greater than this.writableBytes
writeBytes
void writeBytes(&src)
Transfers the specified source buffer's data to this buffer starting at
the current writerIndex until the source buffer's position
reaches its limit, and increases the writerIndex by the
number of the transferred bytes.
- if src.remaining() is greater than
this.writableBytes
writeBytes
int writeBytes(&in,
int&length)
Transfers the content of the specified stream to this buffer
starting at the current writerIndex and increases the
writerIndex by the number of the transferred bytes.
Parameters:length - the number of bytes to transfer
Returns:the actual number of bytes read in from the specified stream
- if length is greater than this.writableBytes
- if the specified stream threw an exception during I/O
writeBytes
int writeBytes(&in,
int&length)
Transfers the content of the specified channel to this buffer
starting at the current writerIndex and increases the
writerIndex by the number of the transferred bytes.
Parameters:length - the maximum number of bytes to transfer
Returns:the actual number of bytes read in from the specified channel
- if length is greater than this.writableBytes
- if the specified channel threw an exception during I/O
void writeZero(int&length)
Fills this buffer with NUL (0x00) starting at the current
writerIndex and increases the writerIndex by the
specified length.
Parameters:length - the number of NULs to write to the buffer
- if length is greater than this.writableBytes
int indexOf(int&fromIndex,
int&toIndex,
byte&value)
Locates the first occurrence of the specified value in this
The search takes place from the specified fromIndex
(inclusive)
to the specified toIndex (exclusive).
If fromIndex is greater than toIndex, the search is
performed in a reversed order.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the absolute index of the first occurrence if found.
-1 otherwise.
int indexOf(int&fromIndex,
int&toIndex,
&indexFinder)
Locates the first place where the specified indexFinder
returns true.
The search takes place from the specified
fromIndex (inclusive) to the specified toIndex
(exclusive).
If fromIndex is greater than toIndex, the search is
performed in a reversed order.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the absolute index where the specified indexFinder
returned true.
-1 if the indexFinder
did not return true at all.
bytesBefore
int bytesBefore(byte&value)
Locates the first occurrence of the specified value in this
The search takes place from the current readerIndex
(inclusive) to the current writerIndex (exclusive).
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the number of bytes between the current readerIndex
and the first occurrence if found. -1 otherwise.
bytesBefore
int bytesBefore(&indexFinder)
Locates the first place where the specified indexFinder returns
The search takes place from the current readerIndex
(inclusive) to the current writerIndex.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the number of bytes between the current readerIndex
and the first place where the indexFinder returned
-1 if the indexFinder did not
return true at all.
bytesBefore
int bytesBefore(int&length,
byte&value)
Locates the first occurrence of the specified value in this
The search starts from the current readerIndex
(inclusive) and lasts for the specified length.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the number of bytes between the current readerIndex
and the first occurrence if found. -1 otherwise.
- if length is greater than this.readableBytes
bytesBefore
int bytesBefore(int&length,
&indexFinder)
Locates the first place where the specified indexFinder returns
The search starts the current readerIndex
(inclusive) and lasts for the specified length.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the number of bytes between the current readerIndex
and the first place where the indexFinder returned
-1 if the indexFinder did not
return true at all.
- if length is greater than this.readableBytes
bytesBefore
int bytesBefore(int&index,
int&length,
byte&value)
Locates the first occurrence of the specified value in this
The search starts from the specified index (inclusive)
and lasts for the specified length.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the number of bytes between the specified index
and the first occurrence if found. -1 otherwise.
- if index + length is greater than this.capacity
bytesBefore
int bytesBefore(int&index,
int&length,
&indexFinder)
Locates the first place where the specified indexFinder returns
The search starts the specified index (inclusive)
and lasts for the specified length.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns:the number of bytes between the specified index
and the first place where the indexFinder returned
-1 if the indexFinder did not
return true at all.
- if index + length is greater than this.capacity
Returns a copy of this buffer's readable bytes.
Modifying the content
of the returned buffer or this buffer does not affect each other at all.
This method is identical to buf.copy(buf.readerIndex(), buf.readableBytes()).
This method does not modify readerIndex or writerIndex of
this buffer.
copy(int&index,
int&length)
Returns a copy of this buffer's sub-region.
Modifying the content of
the returned buffer or this buffer does not affect each other at all.
This method does not modify readerIndex or writerIndex of
this buffer.
Returns a slice of this buffer's readable bytes. Modifying the content
of the returned buffer or this buffer affects each other's content
while they maintain separate indexes and marks.
This method is
identical to buf.slice(buf.readerIndex(), buf.readableBytes()).
This method does not modify readerIndex or writerIndex of
this buffer.
slice(int&index,
int&length)
Returns a slice of this buffer's sub-region. Modifying the content of
the returned buffer or this buffer affects each other's content while
they maintain separate indexes and marks.
This method does not modify readerIndex or writerIndex of
this buffer.
duplicate()
Returns a buffer which shares the whole region of this buffer.
Modifying the content of the returned buffer or this buffer affects
each other's content while they maintain separate indexes and marks.
This method is identical to buf.slice(0, buf.capacity()).
This method does not modify readerIndex or writerIndex of
this buffer.
toByteBuffer
toByteBuffer()
Converts this buffer's readable bytes into a NIO buffer.
The returned
buffer might or might not share the content with this buffer, while
they have separate indexes and marks.
This method is identical to
buf.toByteBuffer(buf.readerIndex(), buf.readableBytes()).
This method does not modify readerIndex or writerIndex of
this buffer.
toByteBuffer
toByteBuffer(int&index,
int&length)
Converts this buffer's sub-region into a NIO buffer.
The returned
buffer might or might not share the content with this buffer, while
they have separate indexes and marks.
This method does not modify readerIndex or writerIndex of
this buffer.
toByteBuffers
[] toByteBuffers()
Converts this buffer's readable bytes into an array of NIO buffers.
The returned buffers might or might not share the content with this
buffer, while they have separate indexes and marks.
This method is
identical to buf.toByteBuffers(buf.readerIndex(), buf.readableBytes()).
This method does not modify readerIndex or writerIndex of
this buffer.
toByteBuffers
[] toByteBuffers(int&index,
int&length)
Converts this buffer's sub-region into an array of NIO buffers.
The returned buffers might or might not share the content with this
buffer, while they have separate indexes and marks.
This method does not modify readerIndex or writerIndex of
this buffer.
boolean hasArray()
Returns true if and only if this buffer has a backing byte array.
If this method returns true, you can safely call
byte[] array()
Returns the backing byte array of this buffer.
- if there no accessible backing byte array
arrayOffset
int arrayOffset()
Returns the offset of the first byte within the backing byte array of
this buffer.
- if there no accessible backing byte array
toString(&charset)
Decodes this buffer's readable bytes into a string with the specified
character set name.
This method is identical to
buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName).
This method does not modify readerIndex or writerIndex of
this buffer.
- if the specified character set name is not supported by the
current VM
toString(int&index,
int&length,
Decodes this buffer's sub-region into a string with the specified
character set.
This method does not modify readerIndex or
writerIndex of this buffer.
toString(&charsetName)
Deprecated.&Use
toString(&charsetName,
&terminatorFinder)
Deprecated.&Use
toString(int&index,
int&length,
&charsetName)
Deprecated.&Use
toString(int&index,
int&length,
&charsetName,
&terminatorFinder)
Deprecated.&Use
int hashCode()
Returns a hash code which was calculated from the content of this
If there's a byte array which is
this array, both arrays should
return the same value.
Overrides: in class
boolean equals(&obj)
Determines if the content of the specified buffer is identical to the
content of this array.
'Identical' here means:
the size of the contents of the two buffers are same and
every single byte of the content of the two buffers are same.
Please note that it does not compare
This method also returns false for
null and an object which is not an instance of
Overrides: in class
int compareTo(&buffer)
Compares the content of the specified buffer to the content of this
Comparison is performed in the same manner with the string
comparison functions of various languages such as strcmp,
memcmp and .
Specified by: in interface &&
toString()
Returns the string representation of this buffer.
This method does not
necessarily return the whole content of the buffer but returns
the values of the key properties such as ,
Overrides: in class
Copyright &#169;
. All Rights Reserved.

我要回帖

更多关于 buffer是什么 的文章

 

随机推荐