public class UnpooledHeapByteBuf extends AbstractReferenceCountedByteBuf
AbstractByteBufAllocator.heapBuffer(int, int) , Unpooled.buffer(int)和Unpooled.wrappedBuffer(byte[]) ,而不是显式调用构造函数。
| Modifier | Constructor and Description |
|---|---|
protected |
UnpooledHeapByteBuf(ByteBufAllocator alloc, byte[] initialArray, int maxCapacity)
用现有的字节数组创建一个新的堆缓冲区。
|
|
UnpooledHeapByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity)
用新分配的字节数组创建一个新的堆缓冲区。
|
| Modifier and Type | Method and Description |
|---|---|
protected byte |
_getByte(int index) |
protected int |
_getInt(int index) |
protected int |
_getIntLE(int index) |
protected long |
_getLong(int index) |
protected long |
_getLongLE(int index) |
protected short |
_getShort(int index) |
protected short |
_getShortLE(int index) |
protected int |
_getUnsignedMedium(int index) |
protected int |
_getUnsignedMediumLE(int index) |
protected void |
_setByte(int index, int value) |
protected void |
_setInt(int index, int value) |
protected void |
_setIntLE(int index, int value) |
protected void |
_setLong(int index, long value) |
protected void |
_setLongLE(int index, long value) |
protected void |
_setMedium(int index, int value) |
protected void |
_setMediumLE(int index, int value) |
protected void |
_setShort(int index, int value) |
protected void |
_setShortLE(int index, int value) |
ByteBufAllocator |
alloc()
返回创建此缓冲区的 ByteBufAllocator 。
|
byte[] |
array()
返回此缓冲区的后备字节数组。
|
int |
arrayOffset()
返回此缓冲区的后备字节数组中第一个字节的偏移量。
|
int |
capacity()
返回此缓冲区可包含的字节数(字节)。
|
ByteBuf |
capacity(int newCapacity)
调整此缓冲区的容量。
|
ByteBuf |
copy(int index, int length)
返回此缓冲区的子区域的副本。
|
protected void |
deallocate()
|
byte |
getByte(int index)
获取此缓冲区中指定的绝对
index一个字节。
|
ByteBuf |
getBytes(int index, byte[] dst, int dstIndex, int length)
将此缓冲区的数据传输到指定的绝对目标
index开始的目标。
|
ByteBuf |
getBytes(int index, java.nio.ByteBuffer dst)
转让此缓冲区的数据到指定的目标开始在指定的绝对
index ,直到目的地的位置到达了极限。
|
ByteBuf |
getBytes(int index, ByteBuf dst, int dstIndex, int length)
将此缓冲区的数据传输到指定的绝对
index开始的目标。
|
int |
getBytes(int index, java.nio.channels.FileChannel out, long position, int length)
将该缓冲区的数据从指定的绝对
index转移到指定的通道,从给定的文件位置开始。
|
int |
getBytes(int index, java.nio.channels.GatheringByteChannel out, int length)
将此缓冲区的数据传输到指定的绝对
index开始的
index 。
|
ByteBuf |
getBytes(int index, java.io.OutputStream out, int length)
将此缓冲区的数据传输到指定的绝对
index开始的流。
|
int |
getInt(int index)
在此缓冲区的指定绝对
index处获取一个32位整数。
|
int |
getIntLE(int index)
在具有Little Endian Byte Order的缓冲区中的指定绝对
index处获取一个32位整数。
|
long |
getLong(int index)
在此缓冲区中的指定绝对
index处获取一个64位长整数。
|
long |
getLongLE(int index)
以小端字节顺序在此缓冲区中的指定绝对
index处获取一个64位长整数。
|
short |
getShort(int index)
在此缓冲区中的指定绝对
index处获取一个16位短整数。
|
short |
getShortLE(int index)
以Little Endian Byte Order的
index在此缓冲区中的指定绝对
index处获取一个16位短整数。
|
int |
getUnsignedMedium(int index)
在此缓冲区中的指定绝对
index处获取一个无符号的24位中等整数。
|
int |
getUnsignedMediumLE(int index)
以小端字节顺序在此缓冲区中的指定绝对
index处获取无符号的24位中等整数。
|
boolean |
hasArray()
当且仅当此缓冲区有一个后备字节数组时,才返回
true 。
|
boolean |
hasMemoryAddress()
当且仅当此缓冲区引用指向后备数据的低级内存地址时才返回
true 。
|
java.nio.ByteBuffer |
internalNioBuffer(int index, int length)
仅内部使用:公开内部NIO缓冲区。
|
boolean |
isDirect()
当且仅当此缓冲区由NIO直接缓冲区支持时才返回
true 。
|
long |
memoryAddress()
返回指向备份数据第一个字节的低级内存地址。
|
java.nio.ByteBuffer |
nioBuffer(int index, int length)
将此缓冲区的子区域公开为NIO
ByteBuffer 。
|
int |
nioBufferCount()
返回构成此缓冲区的NIO
ByteBuffer的最大数量。
|
java.nio.ByteBuffer[] |
nioBuffers(int index, int length)
以指定索引和长度公开此缓冲区的字节为NIO
ByteBuffer返回的缓冲区共享或包含此缓冲区的复制内容,同时更改返回的NIO缓冲区的位置和限制不会影响此索引和标记缓冲。
|
java.nio.ByteOrder |
order()
返回此缓冲区的
endianness 。
|
int |
readBytes(java.nio.channels.FileChannel out, long position, int length)
将此缓冲区的数据从当前的
readerIndex到指定通道,从给定的文件位置开始。
|
int |
readBytes(java.nio.channels.GatheringByteChannel out, int length)
将此缓冲区的数据传输到当前
readerIndex开始的指定流。
|
ByteBuf |
setByte(int index, int value)
在此缓冲区中的指定绝对
index处设置指定的字节。
|
ByteBuf |
setBytes(int index, byte[] src, int srcIndex, int length)
将指定的源数组的数据传输到此缓冲区,从指定的绝对
index 。
|
ByteBuf |
setBytes(int index, java.nio.ByteBuffer src)
将指定的源缓冲区的数据从指定的绝对
index开始传送到此缓冲区,直到源缓冲区的位置达到其限制。
|
ByteBuf |
setBytes(int index, ByteBuf src, int srcIndex, int length)
将指定的源缓冲区的数据从指定的绝对
index开始传送到此缓冲区。
|
int |
setBytes(int index, java.nio.channels.FileChannel in, long position, int length)
将从指定文件位置开始的指定源通道的内容传输到此缓冲区,从指定绝对
index 。
|
int |
setBytes(int index, java.io.InputStream in, int length)
将指定源流的内容从指定绝对
index开始传输到此缓冲区。
|
int |
setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length)
将指定源通道的内容从指定绝对
index开始传送到此缓冲区。
|
ByteBuf |
setInt(int index, int value)
在此缓冲区中的指定绝对
index处设置指定的32位整数。
|
ByteBuf |
setIntLE(int index, int value)
使用Little Endian字节顺序在此缓冲区中的指定绝对
index处设置指定的32位整数。
|
ByteBuf |
setLong(int index, long value)
在此缓冲区中的指定绝对
index处设置指定的64位长整数。
|
ByteBuf |
setLongLE(int index, long value)
以小端字节顺序在此缓冲区中的指定绝对
index处设置指定的64位长整数。
|
ByteBuf |
setMedium(int index, int value)
在此缓冲区中的指定绝对
index处设置指定的24位中等整数。
|
ByteBuf |
setMediumLE(int index, int value)
以小端字节顺序在此缓冲区中的指定绝对
index处设置指定的24位中等整数。
|
ByteBuf |
setShort(int index, int value)
在此缓冲区中的指定绝对
index处设置指定的16位短整数。
|
ByteBuf |
setShortLE(int index, int value)
在此缓冲区中的指定绝对
index使用Little Endian Byte Order设置指定的16位短整数。
|
ByteBuf |
unwrap()
如果此缓冲区是另一个缓冲区的包装,则返回底层缓冲区实例。
|
refCnt, release, release, retain, retain, setRefCnt, touch, touchadjustMarkers, asReadOnly, bytesBefore, bytesBefore, bytesBefore, checkDstIndex, checkIndex, checkIndex, checkNewCapacity, checkReadableBytes, checkSrcIndex, clear, compareTo, copy, discardReadBytes, discardSomeReadBytes, duplicate, ensureAccessible, ensureWritable, ensureWritable, equals, forEachByte, forEachByte, forEachByteDesc, forEachByteDesc, getBoolean, getBytes, getBytes, getBytes, getChar, getCharSequence, getDouble, getFloat, getMedium, getMediumLE, getUnsignedByte, getUnsignedInt, getUnsignedIntLE, getUnsignedShort, getUnsignedShortLE, hashCode, indexOf, isReadable, isReadable, isReadOnly, isWritable, isWritable, markReaderIndex, markWriterIndex, maxCapacity, maxCapacity, maxWritableBytes, newSwappedByteBuf, nioBuffer, nioBuffers, order, readableBytes, readBoolean, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readCharSequence, readDouble, readerIndex, readerIndex, readFloat, readInt, readIntLE, readLong, readLongLE, readMedium, readMediumLE, readRetainedSlice, readShort, readShortLE, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedIntLE, readUnsignedMedium, readUnsignedMediumLE, readUnsignedShort, readUnsignedShortLE, resetReaderIndex, resetWriterIndex, retainedDuplicate, retainedSlice, retainedSlice, setBoolean, setBytes, setBytes, setBytes, setChar, setCharSequence, setDouble, setFloat, setIndex, setZero, skipBytes, slice, slice, toString, toString, toString, writableBytes, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeCharSequence, writeDouble, writeFloat, writeInt, writeIntLE, writeLong, writeLongLE, writeMedium, writeMediumLE, writerIndex, writerIndex, writeShort, writeShortLE, writeZerogetDoubleLE, getFloatLE, readDoubleLE, readFloatLE, setDoubleLE, setFloatLE, writeDoubleLE, writeFloatLEpublic UnpooledHeapByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity)
initialCapacity - 底层字节数组的初始容量
maxCapacity - 底层字节数组的最大容量
protected UnpooledHeapByteBuf(ByteBufAllocator alloc, byte[] initialArray, int maxCapacity)
initialArray - 初始底层字节数组
maxCapacity - 底层字节数组的最大容量
public ByteBufAllocator alloc()
ByteBuf复制的描述
ByteBufAllocator 。
public java.nio.ByteOrder order()
ByteBuf复制的描述
public boolean isDirect()
ByteBuf复制的描述
true 。
public ByteBuf capacity(int newCapacity)
ByteBuf复制的描述
newCapacity小于当前容量,则此缓冲区的内容将被截断。
如果newCapacity大于当前容量,则缓冲区会附加长度为(newCapacity - currentCapacity)未指定数据。
public boolean hasArray()
ByteBuf复制的描述
true 。
如果此方法返回true,则可以安全地调用ByteBuf.array()和ByteBuf.arrayOffset() 。
public int arrayOffset()
ByteBuf复制的描述
arrayOffset在类
ByteBuf
public boolean hasMemoryAddress()
ByteBuf复制的描述
true 。
hasMemoryAddress在类
ByteBuf
public long memoryAddress()
ByteBuf复制的描述
memoryAddress在类
ByteBuf
public ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length)
ByteBuf复制的描述
index开始的目标。
此方法不会修改源(即this )和目标的readerIndex或writerIndex 。
public ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length)
ByteBuf复制的描述
index开始的目标index 。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public ByteBuf getBytes(int index, java.nio.ByteBuffer dst)
ByteBuf复制的描述
index ,直到目的地的位置到达了极限。
此方法不修改此缓冲区的readerIndex或writerIndex ,而目标的position将增加。
public ByteBuf getBytes(int index, java.io.OutputStream out, int length) throws java.io.IOException
ByteBuf复制的描述
index开始的流。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public int getBytes(int index,
java.nio.channels.GatheringByteChannel out,
int length)
throws java.io.IOException
ByteBuf复制的描述
index 。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public int getBytes(int index,
java.nio.channels.FileChannel out,
long position,
int length)
throws java.io.IOException
ByteBuf复制的描述
index到指定通道,从给定文件位置开始。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
此方法不会修改频道的位置。
public int readBytes(java.nio.channels.GatheringByteChannel out,
int length)
throws java.io.IOException
ByteBuf复制的描述
readerIndex开始的指定流。
readBytes类
AbstractByteBuf
length - 传输的最大字节数
java.io.IOException - 如果指定的通道在I / O期间引发异常
public int readBytes(java.nio.channels.FileChannel out,
long position,
int length)
throws java.io.IOException
ByteBuf复制的描述
readerIndex到指定通道,从给定的文件位置开始。
此方法不会修改频道的位置。
readBytes在课程
AbstractByteBuf
position - 传输开始的文件位置
length - 要传输的最大字节数
java.io.IOException - 如果指定的通道在I / O期间引发异常
public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
ByteBuf复制的描述
index开始传送到此缓冲区。
此方法不会修改源(即this )和目标的readerIndex或writerIndex 。
public ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
ByteBuf复制的描述
index 。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public ByteBuf setBytes(int index, java.nio.ByteBuffer src)
ByteBuf复制的描述
index开始传输到此缓冲区,直到源缓冲区的位置达到其限制。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public int setBytes(int index,
java.io.InputStream in,
int length)
throws java.io.IOException
ByteBuf复制的描述
index开始传输到此缓冲区。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public int setBytes(int index,
java.nio.channels.ScatteringByteChannel in,
int length)
throws java.io.IOException
ByteBuf复制的描述
index开始传送到此缓冲区。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
public int setBytes(int index,
java.nio.channels.FileChannel in,
long position,
int length)
throws java.io.IOException
ByteBuf复制的描述
index 。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
此方法不会修改频道的位置。
public int nioBufferCount()
ByteBuf复制的描述
ByteBuffer的最大数量。
请注意, ByteBuf.nioBuffers()或ByteBuf.nioBuffers(int, int)可能会返回更少数量的ByteBuffer s。
nioBufferCount在类
ByteBuf
-1如果此缓冲区没有底层ByteBuffer 。
如果此缓冲区至少有一个基础ByteBuffer ,则基础ByteBuffer的ByteBuffer 。
请注意,此方法不返回0以避免混淆。
ByteBuf.nioBuffer() ,
ByteBuf.nioBuffer(int, int) ,
ByteBuf.nioBuffers() ,
ByteBuf.nioBuffers(int, int)
public java.nio.ByteBuffer nioBuffer(int index,
int length)
ByteBuf复制的描述
ByteBuffer 。
返回的缓冲区共享或包含此缓冲区的复制内容,同时更改返回的NIO缓冲区的位置和限制不会影响此缓冲区的索引和标记。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
请注意,如果此缓冲区是动态缓冲区并且它调整了其容量,则返回的NIO缓冲区将不会看到此缓冲区的更改。
nioBuffer
ByteBuf
ByteBuf.nioBufferCount() ,
ByteBuf.nioBuffers() ,
ByteBuf.nioBuffers(int, int)
public java.nio.ByteBuffer[] nioBuffers(int index,
int length)
ByteBuf复制的描述
ByteBuffer返回的缓冲区共享或包含此缓冲区的复制内容,同时更改返回的NIO缓冲区的位置和限制不会影响此索引和标记缓冲。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
请注意,如果此缓冲区是动态缓冲区并且它调整了其容量,则返回的NIO缓冲区将不会看到此缓冲区的更改。
nioBuffers在类
ByteBuf
ByteBuf.nioBufferCount() ,
ByteBuf.nioBuffer() ,
ByteBuf.nioBuffer(int, int)
public java.nio.ByteBuffer internalNioBuffer(int index,
int length)
ByteBuf复制的描述
internalNioBuffer
ByteBuf
public byte getByte(int index)
ByteBuf复制的描述
index一个字节。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
getByte在类
AbstractByteBuf
protected byte _getByte(int index)
_getByte
AbstractByteBuf
public short getShort(int index)
ByteBuf复制的描述
index处获取一个16位短整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
getShort class
AbstractByteBuf
protected short _getShort(int index)
_getShort
AbstractByteBuf
public short getShortLE(int index)
ByteBuf复制的描述
index处获取一个16位短整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected short _getShortLE(int index)
_getShortLE在类
AbstractByteBuf
public int getUnsignedMedium(int index)
ByteBuf复制的描述
index处获取一个无符号的24位中等整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected int _getUnsignedMedium(int index)
_getUnsignedMedium在类
AbstractByteBuf
public int getUnsignedMediumLE(int index)
ByteBuf复制的描述
index此缓冲区中指定绝对index的无符号24位中等整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected int _getUnsignedMediumLE(int index)
_getUnsignedMediumLE在类
AbstractByteBuf
public int getInt(int index)
ByteBuf复制的描述
index处获取一个32位整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected int _getInt(int index)
_getInt在类
AbstractByteBuf
public int getIntLE(int index)
ByteBuf复制的描述
index处获取一个32位整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
getIntLE在类
AbstractByteBuf
protected int _getIntLE(int index)
_getIntLE在类
AbstractByteBuf
public long getLong(int index)
ByteBuf复制的描述
index处获取一个64位长整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
getLong在类
AbstractByteBuf
protected long _getLong(int index)
_getLong在课程
AbstractByteBuf
public long getLongLE(int index)
ByteBuf复制的描述
index处获取64位长整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected long _getLongLE(int index)
_getLongLE在类
AbstractByteBuf
public ByteBuf setByte(int index, int value)
ByteBuf复制的描述
index处设置指定的字节。
指定值的24个高位被忽略。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected void _setByte(int index,
int value)
_setByte
AbstractByteBuf
public ByteBuf setShort(int index, int value)
ByteBuf复制的描述
index处设置指定的16位短整数。
指定值的16个高位被忽略。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
setShort在课堂
AbstractByteBuf
protected void _setShort(int index,
int value)
_setShort在课堂
AbstractByteBuf
public ByteBuf setShortLE(int index, int value)
ByteBuf复制的描述
index处设置指定的16位短整数。
指定值的16个高位被忽略。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
setShortLE在课堂
AbstractByteBuf
protected void _setShortLE(int index,
int value)
_setShortLE
AbstractByteBuf
public ByteBuf setMedium(int index, int value)
ByteBuf复制的描述
index处设置指定的24位中等整数。
请注意,最高有效字节在指定值中被忽略。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
setMedium在课程
AbstractByteBuf
protected void _setMedium(int index,
int value)
_setMedium在类
AbstractByteBuf
public ByteBuf setMediumLE(int index, int value)
ByteBuf复制的描述
index处设置指定的24位中等整数。
请注意,最高有效字节在指定值中被忽略。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected void _setMediumLE(int index,
int value)
_setMediumLE在类
AbstractByteBuf
public ByteBuf setInt(int index, int value)
ByteBuf复制的描述
index处设置指定的32位整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
setInt在类
AbstractByteBuf
protected void _setInt(int index,
int value)
_setInt在类
AbstractByteBuf
public ByteBuf setIntLE(int index, int value)
ByteBuf复制的描述
index处设置指定的32位整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
setIntLE在课堂
AbstractByteBuf
protected void _setIntLE(int index,
int value)
_setIntLE
AbstractByteBuf
public ByteBuf setLong(int index, long value)
ByteBuf复制的描述
index处设置指定的64位长整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
setLong在类
AbstractByteBuf
protected void _setLong(int index,
long value)
_setLong在类
AbstractByteBuf
public ByteBuf setLongLE(int index, long value)
ByteBuf复制的描述
index设置指定的64位长整数。
此方法不会修改此缓冲区的readerIndex或writerIndex 。
protected void _setLongLE(int index,
long value)
_setLongLE
AbstractByteBuf
public ByteBuf copy(int index, int length)
ByteBuf复制的描述
readerIndex或writerIndex 。
protected void deallocate()
deallocate在课堂
AbstractReferenceCountedByteBuf
Copyright © 2008–2018 The Netty Project. All rights reserved.