org.jboss.netty.buffer
类 AbstractChannelBuffer

java.lang.Object
  继承者 org.jboss.netty.buffer.AbstractChannelBuffer
所有已实现的接口:
java.lang.Comparable<ChannelBuffer>, ChannelBuffer
直接已知子类:
ByteBufferBackedChannelBuffer, CompositeChannelBuffer, DuplicatedChannelBuffer, DynamicChannelBuffer, HeapChannelBuffer, ReadOnlyChannelBuffer, SlicedChannelBuffer, TruncatedChannelBuffer

public abstract class AbstractChannelBuffer
extends java.lang.Object
implements ChannelBuffer

一个ChannelBuffer的脚架实现.


构造方法摘要
AbstractChannelBuffer()
           
 
方法摘要
 int bytesBefore(byte value)
          在该缓冲区当前的readerIndex(包含)到writerIndex(不包含)区间查找第一个发现的 value.
 int bytesBefore(ChannelBufferIndexFinder indexFinder)
          在该缓冲区当前的readerIndex(包含)到writerIndex (不包含)区间查找indexFinder返回true的第一个地方.
 int bytesBefore(int length, byte value)
          在该缓冲区当前的readerIndex(包含)到readerIndex + length (不包含)区间查找第一个发现value的地方 .
 int bytesBefore(int length, ChannelBufferIndexFinder indexFinder)
          在该缓冲区当前的readerIndex(包含)到readerIndex + length (不包含)区间查找indexFinder首次发现的地方.
 int bytesBefore(int index, int length, byte value)
          在该缓冲区指定的index(包含)到index + length (不包含)区间查找第一个发现value的地方.
 int bytesBefore(int index, int length, ChannelBufferIndexFinder indexFinder)
          在该缓冲区指定的index(包含)到index + length (不包含)区间查找indexFinder首次发现的地方.
 void clear()
          同时设置缓冲区的readerIndexwriterIndex0.
 int compareTo(ChannelBuffer that)
          和指定的缓冲进行内容比较 .
 ChannelBuffer copy()
          返回该缓冲可读字节的拷贝.修改其中任何一个缓冲对另一个都不会有影响.
 void discardReadBytes()
          丢弃索引介于0和readerIndex之间的字节.
 void ensureWritableBytes(int writableBytes)
          保证可写字节数量大于等于指定的值.
 boolean equals(java.lang.Object o)
          检测指定的缓冲内容是否和该缓冲内容一样,这里'一样'意味着: 两个缓冲的内容大小一样 两个缓冲的每个单一字节一样.
 void getBytes(int index, byte[] dst)
          在该缓冲区指定绝对值index开始处传输数据到指定的目标.
 void getBytes(int index, ChannelBuffer dst)
          在该缓冲区指定绝对值index开始处传输数据到指定的目标,直到目标不可写为止.
 void getBytes(int index, ChannelBuffer dst, int length)
          在该缓冲区指定绝对值index开始处传输数据到指定的目标.
 char getChar(int index)
          在指定绝对值index处获取一个2字节的UTF16字符.该方法并不修改缓冲的 readerIndexwriterIndex.
 double getDouble(int index)
          在指定绝对值index处获取一个64位浮点数.该方法并不修改缓冲的 readerIndexwriterIndex.
 float getFloat(int index)
          在指定绝对值index处获取一个32位浮点数.该方法并不修改缓冲的 readerIndexwriterIndex.
 int getMedium(int index)
          在指定绝对值index处获取一个24位整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 short getUnsignedByte(int index)
          在指定绝对值index处获取一个无符号字节.该方法并不修改缓冲的 readerIndexwriterIndex.
 long getUnsignedInt(int index)
          在指定绝对值index处获取一个32位无符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 int getUnsignedShort(int index)
          在指定绝对值index处获取一个16位无符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 int hashCode()
          返回该缓冲区内容的哈希值.如果有一个字节数据与该缓冲一样,那么两数组返回的值都相同.
 int indexOf(int fromIndex, int toIndex, byte value)
          在该缓冲区指定的fromIndex(包含)到toIndex(不包含)区间查找第一个发现的value .
 int indexOf(int fromIndex, int toIndex, ChannelBufferIndexFinder indexFinder)
          在该缓冲区指定的fromIndex(包含)到toIndex (不包含)区间查找indexFinder返回true的第一个发现的地方.
 void markReaderIndex()
          标记缓冲区当前的readerIndex.你可以通过调用 ChannelBuffer.resetReaderIndex()把当前的 readerIndex复位到标记的readerIndex.
 void markWriterIndex()
          标记缓冲区当前的writerIndex.你可以通过调用 ChannelBuffer.resetWriterIndex()把当前的 writerIndex复位到标记的writerIndex.
 boolean readable()
          只有当(this.writerIndex - this.readerIndex)大于0才返回true .
 int readableBytes()
          返回可读字节的数量,等同于(this.writerIndex - this.readerIndex).
 byte readByte()
          在当前readerIndex位置获取一个字节,并为 readerIndex加1.
 void readBytes(byte[] dst)
          从该缓冲当前的readerIndex处传输数据到指定的目标, 并使用传输的字节数量( =dst.length )增加readerIndex.
 void readBytes(byte[] dst, int dstIndex, int length)
          从该缓冲当前的readerIndex处传输数据到指定的目标, 并使用传输的字节数量( =length )增加readerIndex.
 void readBytes(java.nio.ByteBuffer dst)
          从该缓冲当前的readerIndex处传输数据到指定的目标,直到目标的position到达限制为止, 并使用传输的字节数量 增加readerIndex.
 void readBytes(ChannelBuffer dst)
          从该缓冲当前的readerIndex处传输数据到指定的目标,直到目标不可写为止, 并使用传输的字节数量增加readerIndex.
 ChannelBuffer readBytes(ChannelBufferIndexFinder endIndexFinder)
          已过时。 
 void readBytes(ChannelBuffer dst, int length)
          从该缓冲当前的readerIndex处传输数据到指定的目标,直到目标不可写为止, 并使用传输的字节数量( =length )增加readerIndex.
 void readBytes(ChannelBuffer dst, int dstIndex, int length)
          从该缓冲当前的readerIndex处传输数据到指定的目标, 并使用传输的字节数量( =length )增加readerIndex.
 int readBytes(java.nio.channels.GatheringByteChannel out, int length)
          从该缓冲当前的readerIndex处传输数据到指定的通道.
 ChannelBuffer readBytes(int length)
          在当前的readerIndex处传输该缓冲区数据到一个新创建的缓冲区中,并使用传输的字节数(= length)增加 readerIndex.
 void readBytes(java.io.OutputStream out, int length)
          从该缓冲当前的readerIndex处传输数据到指定的输出流.
 char readChar()
          在当前readerIndex位置获取一个2字节UTF-16字符,并为 readerIndex加2.
 double readDouble()
          在当前readerIndex位置获取一个64位浮点数,并为 readerIndex加8.
 int readerIndex()
          返回该缓冲的readerIndex
 void readerIndex(int readerIndex)
          设置readerIndex值.
 float readFloat()
          在当前readerIndex位置获取一个32位浮点数,并为 readerIndex加4.
 int readInt()
          在当前readerIndex位置获取一个32位整型,并为 readerIndex加4.
 long readLong()
          在当前readerIndex位置获取一个64位整型,并为 readerIndex加8.
 int readMedium()
          在当前readerIndex位置获取一个24位整型,并为 readerIndex加3.
 short readShort()
          在当前readerIndex位置获取一个16位短整型,并为 readerIndex加2.
 ChannelBuffer readSlice(ChannelBufferIndexFinder endIndexFinder)
          已过时。 
 ChannelBuffer readSlice(int length)
          在当前的readerIndex开始处切割该缓冲区的子范围作为新的缓冲区,并使用新切割的大小增加readerIndex (= length).
 short readUnsignedByte()
          在当前readerIndex位置获取一个无符号字节,并为 readerIndex加1.
 long readUnsignedInt()
          在当前readerIndex位置获取一个32位 无符号整型,并为 readerIndex加4.
 int readUnsignedMedium()
          在当前readerIndex位置获取一个24位无符号整型,并为 readerIndex加3.
 int readUnsignedShort()
          在当前readerIndex位置获取一个 16位无符号短整型,并为 readerIndex加2.
 void resetReaderIndex()
          复位当前 readerIndex到标记的readerIndex.
 void resetWriterIndex()
          复位当前 writerIndex到标记的writerIndex.
 void setBytes(int index, byte[] src)
          把指定的源数组的数据传输到该缓冲区指定绝对值index的位置 .
 void setBytes(int index, ChannelBuffer src)
          把指定的源缓冲区的数据传输到该缓冲区指定绝对值index的位置 ,直到源缓冲区没有可读数据为止.
 void setBytes(int index, ChannelBuffer src, int length)
          把指定的源缓冲区的数据传输到该缓冲区指定绝对值index的位置.
 void setChar(int index, int value)
          在指定绝对值index处设置指定的2字节的UTF16字符 . 16高序位的值会被忽略.该方法并不修改该缓冲区的 readerIndexwriterIndex.
 void setDouble(int index, double value)
          在指定绝对值index处设置指定的64位浮点数 .
 void setFloat(int index, float value)
          在指定绝对值index处设置指定的32位浮点数 .
 void setIndex(int readerIndex, int writerIndex)
          一次性设置 readerIndexwriterIndex.
 void setZero(int index, int length)
          在指定绝对值index的位置填充NUL(0x00).该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.
 int skipBytes(ChannelBufferIndexFinder firstIndexFinder)
          已过时。 
 void skipBytes(int length)
          使用指定的length增加该缓冲区的readerIndex.
 ChannelBuffer slice()
          返回该缓冲可读字节的切片.修改其中任何一个缓冲对另一个都会有影响,不过它们维护着各自的索引和标记,该方法等同于 buf.slice(buf.readerIndex(), buf.readableBytes()).
 java.nio.ByteBuffer toByteBuffer()
          转化该缓冲区的可读字节到一个NIO缓冲区.返回的缓冲区可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记.该方法等同于 buf.toByteBuffer(buf.readerIndex(), buf.readableBytes()).
 java.nio.ByteBuffer[] toByteBuffers()
          转化该缓冲区的可读字节到一个NIO缓冲数组,返回的缓冲数组可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记 ,该方法等同于 buf.toByteBuffers(buf.readerIndex(), buf.readableBytes()).
 java.nio.ByteBuffer[] toByteBuffers(int index, int length)
          转化该缓冲区的子部分到一个NIO缓冲数组,返回的缓冲数组可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记 , 且并不修改该缓冲区的 readerIndexwriterIndex.
 java.lang.String toString()
          返回该缓冲的字符串表示形式.
 java.lang.String toString(java.nio.charset.Charset charset)
          使用一个指定的字符集解码该缓冲子部分为一个字符串.该方法等同于 buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName) .
 java.lang.String toString(int index, int length, java.nio.charset.Charset charset)
          使用一个指定的字符集解码该缓冲子部分为一个字符串,该方法并不修改readerIndexwriterIndex.
 java.lang.String toString(int index, int length, java.lang.String charsetName)
          已过时。 
 java.lang.String toString(int index, int length, java.lang.String charsetName, ChannelBufferIndexFinder terminatorFinder)
          已过时。 
 java.lang.String toString(java.lang.String charsetName)
          已过时。 
 java.lang.String toString(java.lang.String charsetName, ChannelBufferIndexFinder terminatorFinder)
          已过时。 
 boolean writable()
          只有当(this.capacity - this.writerIndex)大于0才返回true.
 int writableBytes()
          返回可写字节的数量,等同于(this.capacity - this.writerIndex).
 void writeByte(int value)
          在当前的writerIndex设置指定的字节,并为writerIndex加1. 24高序位会被忽略.
 void writeBytes(byte[] src)
          从指定的源数组中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = src.length )增加 wirterIndex.
 void writeBytes(byte[] src, int srcIndex, int length)
          从指定的源数组中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.
 void writeBytes(java.nio.ByteBuffer src)
          从指定的源缓冲中传输数据到该缓冲区的当前writerIndex处,直到源缓冲的position达到限制为止,并使用传输的字节数增加 wirterIndex.
 void writeBytes(ChannelBuffer src)
          从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,直到源缓冲不可读为止,并使用传输的字节数增加 wirterIndex.除了该方法会使用传输的字节数增加源缓冲区的readerIndex 外,基本 ChannelBuffer.writeBytes(ChannelBuffer, int, int)和方法一样 .
 void writeBytes(ChannelBuffer src, int length)
          从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.除了该方法会使用传输的字节数( =length )增加源缓冲区的 readerIndex 外,基本 ChannelBuffer.writeBytes(ChannelBuffer, int, int) 和方法一样 ..
 void writeBytes(ChannelBuffer src, int srcIndex, int length)
          从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex
 int writeBytes(java.io.InputStream in, int length)
          从指定的源输入流中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.
 int writeBytes(java.nio.channels.ScatteringByteChannel in, int length)
          从指定的源通道中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数增加 wirterIndex.
 void writeChar(int value)
          在当前的writerIndex设置指定的2字节UTF-16字符,并为writerIndex加2. 16位高序位会被忽略.
 void writeDouble(double value)
          在当前的writerIndex设置指定的64位浮点数,并为writerIndex加8.
 void writeFloat(float value)
          在当前的writerIndex设置指定的32位浮点数,并为writerIndex加4.
 void writeInt(int value)
          在当前的writerIndex设置指定的32位整型,并为writerIndex加4.
 void writeLong(long value)
          在当前的writerIndex设置指定的64位长整型,并为writerIndex加8.
 void writeMedium(int value)
          在当前的writerIndex设置指定的24位整型,并为writerIndex加3.
 int writerIndex()
          返回该缓冲的 writerIndex值.
 void writerIndex(int writerIndex)
          设置writerIndex值.
 void writeShort(int value)
          在当前的writerIndex设置指定的16位短整型,并为writerIndex加2. 16高序位会被忽略.
 void writeZero(int length)
          在当前的writerIndex处填充NUL (0x00),并使用指定的length增加writerIndex.
 
从类 java.lang.Object 继承的方法
getClass, notify, notifyAll, wait, wait, wait
 
从接口 org.jboss.netty.buffer.ChannelBuffer 继承的方法
array, arrayOffset, capacity, copy, duplicate, factory, getByte, getBytes, getBytes, getBytes, getBytes, getBytes, getInt, getLong, getShort, getUnsignedMedium, hasArray, isDirect, order, setByte, setBytes, setBytes, setBytes, setBytes, setBytes, setInt, setLong, setMedium, setShort, slice, toByteBuffer
 

构造方法详细信息

AbstractChannelBuffer

public AbstractChannelBuffer()
方法详细信息

readerIndex

public int readerIndex()
从接口 ChannelBuffer 复制的描述
返回该缓冲的readerIndex

指定者:
接口 ChannelBuffer 中的 readerIndex

readerIndex

public void readerIndex(int readerIndex)
从接口 ChannelBuffer 复制的描述
设置readerIndex值.

指定者:
接口 ChannelBuffer 中的 readerIndex

writerIndex

public int writerIndex()
从接口 ChannelBuffer 复制的描述
返回该缓冲的 writerIndex值.

指定者:
接口 ChannelBuffer 中的 writerIndex

writerIndex

public void writerIndex(int writerIndex)
从接口 ChannelBuffer 复制的描述
设置writerIndex值.

指定者:
接口 ChannelBuffer 中的 writerIndex

setIndex

public void setIndex(int readerIndex,
                     int writerIndex)
从接口 ChannelBuffer 复制的描述
一次性设置 readerIndexwriterIndex. 如果对调用 ChannelBuffer.readerIndex(int)ChannelBuffer.writerIndex(int)方法有顺序要求时这个方法很有用. 比如,下面代码会失败:
 // 创建一个readerIndex,writerIndex和capacity分别为0,0,8的缓冲.
 ChannelBuffer buf = ChannelBuffers.buffer(8);
 
 // 因为readerIndex(2)大于当前的writerIndex(0),所以IndexOutOfBoundsException会被抛出.
 buf.readerIndex(2);
 buf.writerIndex(4);
 
下面代码也会失败:
 // 创建一个readerIndex,writerIndex和capacity分别为0,8,8的缓冲.
 ChannelBuffer buf = ChannelBuffers.wrappedBuffer(new byte[8]);
 
 // readerIndex为8.
 buf.readLong();
 
 // 因为writerIndex(4)小于当前的readerIndex(8),所以IndexOutOfBoundsException会被抛出.
 buf.writerIndex(4);
 buf.readerIndex(2);
 
相比之下,只要符合基本限制,不管当前缓冲的索引值是什么,ChannelBuffer.setIndex(int, int)保证不会抛出 IndexOutOfBoundsException:
 // 不管当前缓冲的状态是什么,只要缓冲区的 容量capacity不小于4,下面的调用总是成功的.
 buf.setIndex(2, 4);
 

指定者:
接口 ChannelBuffer 中的 setIndex

clear

public void clear()
从接口 ChannelBuffer 复制的描述
同时设置缓冲区的readerIndexwriterIndex0. 这个方法等同于 setIndex(0, 0).

请注意这个方法的行为不同于NIO缓冲,NIO会设置 limit为缓冲的capacity.

指定者:
接口 ChannelBuffer 中的 clear

readable

public boolean readable()
从接口 ChannelBuffer 复制的描述
只有当(this.writerIndex - this.readerIndex)大于0才返回true .

指定者:
接口 ChannelBuffer 中的 readable

writable

public boolean writable()
从接口 ChannelBuffer 复制的描述
只有当(this.capacity - this.writerIndex)大于0才返回true.

指定者:
接口 ChannelBuffer 中的 writable

readableBytes

public int readableBytes()
从接口 ChannelBuffer 复制的描述
返回可读字节的数量,等同于(this.writerIndex - this.readerIndex).

指定者:
接口 ChannelBuffer 中的 readableBytes

writableBytes

public int writableBytes()
从接口 ChannelBuffer 复制的描述
返回可写字节的数量,等同于(this.capacity - this.writerIndex).

指定者:
接口 ChannelBuffer 中的 writableBytes

markReaderIndex

public void markReaderIndex()
从接口 ChannelBuffer 复制的描述
标记缓冲区当前的readerIndex.你可以通过调用 ChannelBuffer.resetReaderIndex()把当前的 readerIndex复位到标记的readerIndex. 标记的readerIndex初始值为 0.

指定者:
接口 ChannelBuffer 中的 markReaderIndex

resetReaderIndex

public void resetReaderIndex()
从接口 ChannelBuffer 复制的描述
复位当前 readerIndex到标记的readerIndex.

指定者:
接口 ChannelBuffer 中的 resetReaderIndex

markWriterIndex

public void markWriterIndex()
从接口 ChannelBuffer 复制的描述
标记缓冲区当前的writerIndex.你可以通过调用 ChannelBuffer.resetWriterIndex()把当前的 writerIndex复位到标记的writerIndex. 标记的writerIndex初始值为 0.

指定者:
接口 ChannelBuffer 中的 markWriterIndex

resetWriterIndex

public void resetWriterIndex()
从接口 ChannelBuffer 复制的描述
复位当前 writerIndex到标记的writerIndex.

指定者:
接口 ChannelBuffer 中的 resetWriterIndex

discardReadBytes

public void discardReadBytes()
从接口 ChannelBuffer 复制的描述
丢弃索引介于0和readerIndex之间的字节. 移动字节直到readerIndexwriterIndex之间的的索引为0,并分别设置readerIndexwriterIndex 为0和oldWriterIndex - oldReaderIndex .

请参阅类文档了解更多的解释.

指定者:
接口 ChannelBuffer 中的 discardReadBytes

ensureWritableBytes

public void ensureWritableBytes(int writableBytes)
从接口 ChannelBuffer 复制的描述
保证可写字节数量大于等于指定的值. 如果有足够的可写字节,该方法会不做任何操作直接返回. 否则:

指定者:
接口 ChannelBuffer 中的 ensureWritableBytes
参数:
writableBytes - 最小期望的可写字节

getUnsignedByte

public short getUnsignedByte(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个无符号字节.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getUnsignedByte

getUnsignedShort

public int getUnsignedShort(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个16位无符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getUnsignedShort

getMedium

public int getMedium(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个24位整型.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getMedium

getUnsignedInt

public long getUnsignedInt(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个32位无符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getUnsignedInt

getChar

public char getChar(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个2字节的UTF16字符.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getChar

getFloat

public float getFloat(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个32位浮点数.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getFloat

getDouble

public double getDouble(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个64位浮点数.该方法并不修改缓冲的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 getDouble

getBytes

public void getBytes(int index,
                     byte[] dst)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的目标. 该方法并不修改该缓冲区的 readerIndexwriterIndex

指定者:
接口 ChannelBuffer 中的 getBytes

getBytes

public void getBytes(int index,
                     ChannelBuffer dst)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的目标,直到目标不可写为止. 该方法除了会使用传输的字节数量增加目标缓冲区的 writerIndex外,基本与ChannelBuffer.getBytes(int, ChannelBuffer, int, int) 一样. 该方法并不修改源缓冲区的 readerIndexwriterIndex. (如:本缓冲区).

指定者:
接口 ChannelBuffer 中的 getBytes

getBytes

public void getBytes(int index,
                     ChannelBuffer dst,
                     int length)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的目标. 该方法除了会使用传输的字节数量增加目标缓冲区的 writerIndex外,基本与ChannelBuffer.getBytes(int, ChannelBuffer, int, int) 一样. 该方法并不修改源缓冲区的 readerIndexwriterIndex. (如:本缓冲区).

指定者:
接口 ChannelBuffer 中的 getBytes
length - 传输字节数量

setChar

public void setChar(int index,
                    int value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的2字节的UTF16字符 . 16高序位的值会被忽略.该方法并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setChar

setFloat

public void setFloat(int index,
                     float value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的32位浮点数 . 该方法并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setFloat

setDouble

public void setDouble(int index,
                      double value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的64位浮点数 . 该方法并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setDouble

setBytes

public void setBytes(int index,
                     byte[] src)
从接口 ChannelBuffer 复制的描述
把指定的源数组的数据传输到该缓冲区指定绝对值index的位置 . 该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setBytes

setBytes

public void setBytes(int index,
                     ChannelBuffer src)
从接口 ChannelBuffer 复制的描述
把指定的源缓冲区的数据传输到该缓冲区指定绝对值index的位置 ,直到源缓冲区没有可读数据为止. 该方法除了会使用传输的字节数增加源缓冲区的readerIndex外,基本与 ChannelBuffer.setBytes(int, ChannelBuffer, int, int)一样. 该方法并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setBytes

setBytes

public void setBytes(int index,
                     ChannelBuffer src,
                     int length)
从接口 ChannelBuffer 复制的描述
把指定的源缓冲区的数据传输到该缓冲区指定绝对值index的位置. 该方法除了会使用传输的字节数增加源缓冲区的 readerIndex外,基本与 ChannelBuffer.setBytes(int, ChannelBuffer, int, int) 一样. 该方法并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setBytes
length - 传输的字节数

setZero

public void setZero(int index,
                    int length)
从接口 ChannelBuffer 复制的描述
在指定绝对值index的位置填充NUL(0x00).该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 setZero
length - 填充NUL的数量

readByte

public byte readByte()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个字节,并为 readerIndex加1.

指定者:
接口 ChannelBuffer 中的 readByte

readUnsignedByte

public short readUnsignedByte()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个无符号字节,并为 readerIndex加1.

指定者:
接口 ChannelBuffer 中的 readUnsignedByte

readShort

public short readShort()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个16位短整型,并为 readerIndex加2.

指定者:
接口 ChannelBuffer 中的 readShort

readUnsignedShort

public int readUnsignedShort()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个 16位无符号短整型,并为 readerIndex加2.

指定者:
接口 ChannelBuffer 中的 readUnsignedShort

readMedium

public int readMedium()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个24位整型,并为 readerIndex加3.

指定者:
接口 ChannelBuffer 中的 readMedium

readUnsignedMedium

public int readUnsignedMedium()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个24位无符号整型,并为 readerIndex加3.

指定者:
接口 ChannelBuffer 中的 readUnsignedMedium

readInt

public int readInt()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个32位整型,并为 readerIndex加4.

指定者:
接口 ChannelBuffer 中的 readInt

readUnsignedInt

public long readUnsignedInt()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个32位 无符号整型,并为 readerIndex加4.

指定者:
接口 ChannelBuffer 中的 readUnsignedInt

readLong

public long readLong()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个64位整型,并为 readerIndex加8.

指定者:
接口 ChannelBuffer 中的 readLong

readChar

public char readChar()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个2字节UTF-16字符,并为 readerIndex加2.

指定者:
接口 ChannelBuffer 中的 readChar

readFloat

public float readFloat()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个32位浮点数,并为 readerIndex加4.

指定者:
接口 ChannelBuffer 中的 readFloat

readDouble

public double readDouble()
从接口 ChannelBuffer 复制的描述
在当前readerIndex位置获取一个64位浮点数,并为 readerIndex加8.

指定者:
接口 ChannelBuffer 中的 readDouble

readBytes

public ChannelBuffer readBytes(int length)
从接口 ChannelBuffer 复制的描述
在当前的readerIndex处传输该缓冲区数据到一个新创建的缓冲区中,并使用传输的字节数(= length)增加 readerIndex. 返回一个readerIndexwriterIndex分别为0和 length .

指定者:
接口 ChannelBuffer 中的 readBytes
参数:
length - 传输的字节数
返回:
包含已经传输字节的新缓冲

readBytes

@Deprecated
public ChannelBuffer readBytes(ChannelBufferIndexFinder endIndexFinder)
已过时。 

指定者:
接口 ChannelBuffer 中的 readBytes

readSlice

public ChannelBuffer readSlice(int length)
从接口 ChannelBuffer 复制的描述
在当前的readerIndex开始处切割该缓冲区的子范围作为新的缓冲区,并使用新切割的大小增加readerIndex (= length).

指定者:
接口 ChannelBuffer 中的 readSlice
参数:
length - 要切割的长度
返回:
一个新的切割缓冲

readSlice

@Deprecated
public ChannelBuffer readSlice(ChannelBufferIndexFinder endIndexFinder)
已过时。 

指定者:
接口 ChannelBuffer 中的 readSlice

readBytes

public void readBytes(byte[] dst,
                      int dstIndex,
                      int length)
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的目标, 并使用传输的字节数量( =length )增加readerIndex.

指定者:
接口 ChannelBuffer 中的 readBytes
dstIndex - 目标的开始索引
length - 传输的字节数

readBytes

public void readBytes(byte[] dst)
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的目标, 并使用传输的字节数量( =dst.length )增加readerIndex.

指定者:
接口 ChannelBuffer 中的 readBytes

readBytes

public void readBytes(ChannelBuffer dst)
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的目标,直到目标不可写为止, 并使用传输的字节数量增加readerIndex. 该方法除了会使用传输的字节数量增加目标的writerIndex外,基本与 ChannelBuffer.readBytes(ChannelBuffer, int, int)一样.

指定者:
接口 ChannelBuffer 中的 readBytes

readBytes

public void readBytes(ChannelBuffer dst,
                      int length)
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的目标,直到目标不可写为止, 并使用传输的字节数量( =length )增加readerIndex. 该方法除了会使用传输的字节数量( =length )增加目标的writerIndex外,基本与 ChannelBuffer.readBytes(ChannelBuffer, int, int)一样.

指定者:
接口 ChannelBuffer 中的 readBytes

readBytes

public void readBytes(ChannelBuffer dst,
                      int dstIndex,
                      int length)
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的目标, 并使用传输的字节数量( =length )增加readerIndex.

指定者:
接口 ChannelBuffer 中的 readBytes
dstIndex - 目标的开始索引
length - 传输字节数量

readBytes

public void readBytes(java.nio.ByteBuffer dst)
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的目标,直到目标的position到达限制为止, 并使用传输的字节数量 增加readerIndex.

指定者:
接口 ChannelBuffer 中的 readBytes

readBytes

public int readBytes(java.nio.channels.GatheringByteChannel out,
                     int length)
              throws java.io.IOException
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的通道.

指定者:
接口 ChannelBuffer 中的 readBytes
length - 要传输的最大字节数
返回:
被写到指定通道的实际字节数
抛出:
java.io.IOException - 指定通道在I/O期间抛出的异常

readBytes

public void readBytes(java.io.OutputStream out,
                      int length)
               throws java.io.IOException
从接口 ChannelBuffer 复制的描述
从该缓冲当前的readerIndex处传输数据到指定的输出流.

指定者:
接口 ChannelBuffer 中的 readBytes
length - 传输的字节数
抛出:
java.io.IOException - 指定输出流在I/O期间抛出的异常

skipBytes

public void skipBytes(int length)
从接口 ChannelBuffer 复制的描述
使用指定的length增加该缓冲区的readerIndex.

指定者:
接口 ChannelBuffer 中的 skipBytes

skipBytes

@Deprecated
public int skipBytes(ChannelBufferIndexFinder firstIndexFinder)
已过时。 

指定者:
接口 ChannelBuffer 中的 skipBytes

writeByte

public void writeByte(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的字节,并为writerIndex加1. 24高序位会被忽略.

指定者:
接口 ChannelBuffer 中的 writeByte

writeShort

public void writeShort(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的16位短整型,并为writerIndex加2. 16高序位会被忽略.

指定者:
接口 ChannelBuffer 中的 writeShort

writeMedium

public void writeMedium(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的24位整型,并为writerIndex加3.

指定者:
接口 ChannelBuffer 中的 writeMedium

writeInt

public void writeInt(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的32位整型,并为writerIndex加4.

指定者:
接口 ChannelBuffer 中的 writeInt

writeLong

public void writeLong(long value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的64位长整型,并为writerIndex加8.

指定者:
接口 ChannelBuffer 中的 writeLong

writeChar

public void writeChar(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的2字节UTF-16字符,并为writerIndex加2. 16位高序位会被忽略.

指定者:
接口 ChannelBuffer 中的 writeChar

writeFloat

public void writeFloat(float value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的32位浮点数,并为writerIndex加4.

指定者:
接口 ChannelBuffer 中的 writeFloat

writeDouble

public void writeDouble(double value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的64位浮点数,并为writerIndex加8.

指定者:
接口 ChannelBuffer 中的 writeDouble

writeBytes

public void writeBytes(byte[] src,
                       int srcIndex,
                       int length)
从接口 ChannelBuffer 复制的描述
从指定的源数组中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
srcIndex - 源数组的开始索引
length - 要传输的字节数

writeBytes

public void writeBytes(byte[] src)
从接口 ChannelBuffer 复制的描述
从指定的源数组中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = src.length )增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes

writeBytes

public void writeBytes(ChannelBuffer src)
从接口 ChannelBuffer 复制的描述
从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,直到源缓冲不可读为止,并使用传输的字节数增加 wirterIndex.除了该方法会使用传输的字节数增加源缓冲区的readerIndex 外,基本 ChannelBuffer.writeBytes(ChannelBuffer, int, int)和方法一样 .

指定者:
接口 ChannelBuffer 中的 writeBytes

writeBytes

public void writeBytes(ChannelBuffer src,
                       int length)
从接口 ChannelBuffer 复制的描述
从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.除了该方法会使用传输的字节数( =length )增加源缓冲区的 readerIndex 外,基本 ChannelBuffer.writeBytes(ChannelBuffer, int, int) 和方法一样 ..

指定者:
接口 ChannelBuffer 中的 writeBytes
length - 要传输的字节数

writeBytes

public void writeBytes(ChannelBuffer src,
                       int srcIndex,
                       int length)
从接口 ChannelBuffer 复制的描述
从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex

指定者:
接口 ChannelBuffer 中的 writeBytes
srcIndex - 源缓冲区的开始索引
length - 要传输的字节数

writeBytes

public void writeBytes(java.nio.ByteBuffer src)
从接口 ChannelBuffer 复制的描述
从指定的源缓冲中传输数据到该缓冲区的当前writerIndex处,直到源缓冲的position达到限制为止,并使用传输的字节数增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes

writeBytes

public int writeBytes(java.io.InputStream in,
                      int length)
               throws java.io.IOException
从接口 ChannelBuffer 复制的描述
从指定的源输入流中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
length - 要传输的字节数
返回:
从指定流中读取到的实际字节数
抛出:
java.io.IOException - 指定流在I/O期间抛出的异常

writeBytes

public int writeBytes(java.nio.channels.ScatteringByteChannel in,
                      int length)
               throws java.io.IOException
从接口 ChannelBuffer 复制的描述
从指定的源通道中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
length - 最大的传输字节数
返回:
从指定的通道中读取到的实际字节数
抛出:
java.io.IOException - 指定通道在I/O期间抛出的异常

writeZero

public void writeZero(int length)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex处填充NUL (0x00),并使用指定的length增加writerIndex.

指定者:
接口 ChannelBuffer 中的 writeZero
参数:
length - 填充到该缓冲区的NUL数量

copy

public ChannelBuffer copy()
从接口 ChannelBuffer 复制的描述
返回该缓冲可读字节的拷贝.修改其中任何一个缓冲对另一个都不会有影响. 该方法等同于 buf.copy(buf.readerIndex(), buf.readableBytes()). 且并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 copy

slice

public ChannelBuffer slice()
从接口 ChannelBuffer 复制的描述
返回该缓冲可读字节的切片.修改其中任何一个缓冲对另一个都会有影响,不过它们维护着各自的索引和标记,该方法等同于 buf.slice(buf.readerIndex(), buf.readableBytes()). 且并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 slice

toByteBuffer

public java.nio.ByteBuffer toByteBuffer()
从接口 ChannelBuffer 复制的描述
转化该缓冲区的可读字节到一个NIO缓冲区.返回的缓冲区可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记.该方法等同于 buf.toByteBuffer(buf.readerIndex(), buf.readableBytes()). 且并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 toByteBuffer

toByteBuffers

public java.nio.ByteBuffer[] toByteBuffers()
从接口 ChannelBuffer 复制的描述
转化该缓冲区的可读字节到一个NIO缓冲数组,返回的缓冲数组可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记 ,该方法等同于 buf.toByteBuffers(buf.readerIndex(), buf.readableBytes()). 且并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 toByteBuffers

toByteBuffers

public java.nio.ByteBuffer[] toByteBuffers(int index,
                                           int length)
从接口 ChannelBuffer 复制的描述
转化该缓冲区的子部分到一个NIO缓冲数组,返回的缓冲数组可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记 , 且并不修改该缓冲区的 readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 toByteBuffers

toString

public java.lang.String toString(java.nio.charset.Charset charset)
从接口 ChannelBuffer 复制的描述
使用一个指定的字符集解码该缓冲子部分为一个字符串.该方法等同于 buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName) . 该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 toString

toString

public java.lang.String toString(int index,
                                 int length,
                                 java.nio.charset.Charset charset)
从接口 ChannelBuffer 复制的描述
使用一个指定的字符集解码该缓冲子部分为一个字符串,该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 toString

toString

@Deprecated
public java.lang.String toString(int index,
                                            int length,
                                            java.lang.String charsetName,
                                            ChannelBufferIndexFinder terminatorFinder)
已过时。 

指定者:
接口 ChannelBuffer 中的 toString

toString

@Deprecated
public java.lang.String toString(int index,
                                            int length,
                                            java.lang.String charsetName)
已过时。 

指定者:
接口 ChannelBuffer 中的 toString

toString

@Deprecated
public java.lang.String toString(java.lang.String charsetName,
                                            ChannelBufferIndexFinder terminatorFinder)
已过时。 

指定者:
接口 ChannelBuffer 中的 toString

toString

@Deprecated
public java.lang.String toString(java.lang.String charsetName)
已过时。 

指定者:
接口 ChannelBuffer 中的 toString

indexOf

public int indexOf(int fromIndex,
                   int toIndex,
                   byte value)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定的fromIndex(包含)到toIndex(不包含)区间查找第一个发现的value .

如果fromIndex大于toIndex,则查找会反顺序执行.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 indexOf
返回:
返回第一个发现的绝对索引值,否则返回-1.

indexOf

public int indexOf(int fromIndex,
                   int toIndex,
                   ChannelBufferIndexFinder indexFinder)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定的fromIndex(包含)到toIndex (不包含)区间查找indexFinder返回true的第一个发现的地方.

如果fromIndex大于toIndex,则查找会反顺序执行.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 indexOf
返回:
返回指定indexFinder返回true的首个地方的绝对索引.若indexFinder根本不返回true,则返回-1.

bytesBefore

public int bytesBefore(byte value)
从接口 ChannelBuffer 复制的描述
在该缓冲区当前的readerIndex(包含)到writerIndex(不包含)区间查找第一个发现的 value.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 bytesBefore
返回:
返回第一个发现的绝对索引值,否则返回-1.

bytesBefore

public int bytesBefore(ChannelBufferIndexFinder indexFinder)
从接口 ChannelBuffer 复制的描述
在该缓冲区当前的readerIndex(包含)到writerIndex (不包含)区间查找indexFinder返回true的第一个地方.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 bytesBefore
返回:
返回readerIndex和indexFinder返回true的首个地方之间的字节数.若indexFinder根本不返回true,则返回 -1.

bytesBefore

public int bytesBefore(int length,
                       byte value)
从接口 ChannelBuffer 复制的描述
在该缓冲区当前的readerIndex(包含)到readerIndex + length (不包含)区间查找第一个发现value的地方 .

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 bytesBefore
返回:
返回readerIndex和首次发现value之间的字节数量.若未发现value,则返回-1

bytesBefore

public int bytesBefore(int length,
                       ChannelBufferIndexFinder indexFinder)
从接口 ChannelBuffer 复制的描述
在该缓冲区当前的readerIndex(包含)到readerIndex + length (不包含)区间查找indexFinder首次发现的地方.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 bytesBefore
返回:
返回readerIndex和indexFinder返回true的首个地方之间的字节数.若indexFinder根本不返回true,则返回 -1.

bytesBefore

public int bytesBefore(int index,
                       int length,
                       byte value)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定的index(包含)到index + length (不包含)区间查找第一个发现value的地方.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 bytesBefore
返回:
返回index和首次发现value之间的字节数量.若未发现value,则返回-1

bytesBefore

public int bytesBefore(int index,
                       int length,
                       ChannelBufferIndexFinder indexFinder)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定的index(包含)到index + length (不包含)区间查找indexFinder首次发现的地方.

该方法并不修改readerIndexwriterIndex.

指定者:
接口 ChannelBuffer 中的 bytesBefore
返回:
返回index和indexFinder首次返回true之间的字节数量.若未发现value,则返回-1

hashCode

public int hashCode()
从接口 ChannelBuffer 复制的描述
返回该缓冲区内容的哈希值.如果有一个字节数据与该缓冲一样,那么两数组返回的值都相同.

指定者:
接口 ChannelBuffer 中的 hashCode
覆盖:
java.lang.Object 中的 hashCode

equals

public boolean equals(java.lang.Object o)
从接口 ChannelBuffer 复制的描述
检测指定的缓冲内容是否和该缓冲内容一样,这里'一样'意味着: 请注意,并不比较ChannelBuffer.readerIndex()ChannelBuffer.writerIndex(). 如果指定的对象不是 ChannelBuffer类型或为null,则返回false.

指定者:
接口 ChannelBuffer 中的 equals
覆盖:
java.lang.Object 中的 equals

compareTo

public int compareTo(ChannelBuffer that)
从接口 ChannelBuffer 复制的描述
和指定的缓冲进行内容比较 . 和大多数语言的字符串比较方法那样会一相同的方式比较如 strcmp, memcmpString.compareTo(String).

指定者:
接口 java.lang.Comparable<ChannelBuffer> 中的 compareTo
指定者:
接口 ChannelBuffer 中的 compareTo

toString

public java.lang.String toString()
从接口 ChannelBuffer 复制的描述
返回该缓冲的字符串表示形式. 该方法并不返回缓冲区的全部内容,但会返回关键属性的值,如ChannelBuffer.readerIndex(), ChannelBuffer.writerIndex()ChannelBuffer.capacity().

指定者:
接口 ChannelBuffer 中的 toString
覆盖:
java.lang.Object 中的 toString