@Deprecated public class SlicedByteBuf extends AbstractDerivedByteBuf
ByteBuf.slice()
和ByteBuf.slice(int, int)
,而不是显式调用构造函数。
Constructor and Description |
---|
SlicedByteBuf(ByteBuf buffer, int index, int length)
已过时。
|
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)
返回此缓冲区的子区域的副本。
|
ByteBuf |
duplicate()
返回共享此缓冲区整个区域的缓冲区。
|
int |
forEachByte(int index, int length, ByteProcessor processor)
以指定的
processor 按升序迭代该缓冲区的指定区域。
|
int |
forEachByteDesc(int index, int length, ByteProcessor processor)
以指定的
processor 以降序遍历此缓冲区的指定区域。
|
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 开始
index 到指定的通道,从给定的文件位置开始。
|
int |
getBytes(int index, java.nio.channels.GatheringByteChannel out, int length)
将此缓冲区的数据传输到指定的绝对
index 开始的通道。
|
ByteBuf |
getBytes(int index, java.io.OutputStream out, int length)
将此缓冲区的数据传输至指定绝对
index 处的指定流。
|
java.lang.CharSequence |
getCharSequence(int index, int length, java.nio.charset.Charset charset)
在给定索引处获得具有给定长度的
CharSequence 。
|
int |
getInt(int index)
在此缓冲区中的指定绝对
index 处获取一个32位整数。
|
int |
getIntLE(int index)
以小端字节顺序在此缓冲区中的指定绝对
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)
以Little Endian Byte Order的形式
index 此缓冲区中指定绝对
index 的无符号24位中等整数。
|
boolean |
hasArray()
当且仅当此缓冲区有一个后备字节数组时,才返回
true 。
|
boolean |
hasMemoryAddress()
当且仅当此缓冲区引用指向后备数据的低级内存地址时才返回
true 。
|
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()
已过时。
|
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)
以Little Endian字节顺序在此缓冲区中的指定绝对
index 处设置指定的24位中等整数。
|
ByteBuf |
setShort(int index, int value)
在此缓冲区中的指定绝对
index 处设置指定的16位短整数。
|
ByteBuf |
setShortLE(int index, int value)
使用Little Endian Byte Order在此缓冲区中的指定绝对
index 处设置指定的16位短整数。
|
ByteBuf |
slice(int index, int length)
返回此缓冲区的子区域的一部分。
|
ByteBuf |
unwrap()
如果此缓冲区是另一个缓冲区的包装,则返回底层缓冲区实例。
|
internalNioBuffer, isReadOnly, refCnt, release, release, retain, retain, touch, touch
adjustMarkers, asReadOnly, bytesBefore, bytesBefore, bytesBefore, checkDstIndex, checkIndex, checkIndex, checkNewCapacity, checkReadableBytes, checkSrcIndex, clear, compareTo, copy, discardReadBytes, discardSomeReadBytes, ensureAccessible, ensureWritable, ensureWritable, equals, forEachByte, forEachByteDesc, getBoolean, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getMediumLE, getUnsignedByte, getUnsignedInt, getUnsignedIntLE, getUnsignedShort, getUnsignedShortLE, hashCode, indexOf, isReadable, isReadable, isWritable, isWritable, markReaderIndex, markWriterIndex, maxCapacity, maxCapacity, maxWritableBytes, newSwappedByteBuf, nioBuffer, nioBuffers, order, readableBytes, readBoolean, readByte, readBytes, readBytes, 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, 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, writeZero
getDoubleLE, getFloatLE, readDoubleLE, readFloatLE, setDoubleLE, setFloatLE, writeDoubleLE, writeFloatLE
public SlicedByteBuf(ByteBuf buffer, int index, int length)
public int capacity()
ByteBuf
public ByteBufAllocator alloc()
ByteBuf
ByteBufAllocator
。
@Deprecated 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 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
在类
AbstractByteBuf
protected short _getShort(int index)
_getShort
类
AbstractByteBuf
public short getShortLE(int index)
ByteBuf
index
处获取一个16位短整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
getShortLE
在类
AbstractByteBuf
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
。
getInt
在类
AbstractByteBuf
protected int _getInt(int index)
_getInt
在类
AbstractByteBuf
public int getIntLE(int index)
ByteBuf
index
处获取一个32位整数, index
字节顺序。
此方法不会修改此缓冲区的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
。
getLongLE
在类
AbstractByteBuf
protected long _getLongLE(int index)
_getLongLE
在类
AbstractByteBuf
public ByteBuf duplicate()
ByteBuf
readerIndex
或writerIndex
。
读者和作家的标记不会重复。 另外请注意,此方法不会调用ByteBuf.retain()
,因此引用计数不会增加。
duplicate
在类
AbstractByteBuf
ByteBuf.slice()
返回的缓冲区的缓冲区。
然而,这个缓冲区将共享底层缓冲区的容量,因此如果需要的话允许访问所有的底层内容。
public ByteBuf copy(int index, int length)
ByteBuf
readerIndex
或writerIndex
。
public ByteBuf slice(int index, int length)
ByteBuf
readerIndex
或writerIndex
。
另外请注意,此方法不会调用ByteBuf.retain()
,因此引用计数不会增加。
slice
在类
AbstractByteBuf
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
开始的目标。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public ByteBuf getBytes(int index, java.nio.ByteBuffer dst)
ByteBuf
index
开始,直到目标位置达到其限制。
此方法不会修改此缓冲区的readerIndex
或writerIndex
,而目标的position
将会增加。
public ByteBuf setByte(int index, int value)
ByteBuf
index
处设置指定的字节。
指定值的24个高位被忽略。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setByte
在类
AbstractByteBuf
public java.lang.CharSequence getCharSequence(int index, int length, java.nio.charset.Charset charset)
ByteBuf
CharSequence
。
getCharSequence
在类
AbstractByteBuf
length
- 要阅读的长度
charset
- 应该使用
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
。
setMediumLE
在课堂上
AbstractByteBuf
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
。
setLongLE
在类
AbstractByteBuf
protected void _setLongLE(int index, long value)
_setLongLE
在类
AbstractByteBuf
public ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
ByteBuf
index
。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
ByteBuf
index
开始传送到此缓冲区。
此方法不会修改源(即this
)和目标的readerIndex
或writerIndex
。
public ByteBuf setBytes(int index, java.nio.ByteBuffer src)
ByteBuf
index
开始,直到源缓冲区的位置达到其限制。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
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 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
。
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缓冲区将不会看到此缓冲区的更改。
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 int forEachByte(int index, int length, ByteProcessor processor)
ByteBuf
processor
按升序迭代该缓冲区的指定区域。
(即index
, (index + 1)
,.. (index + length - 1)
)
forEachByte
在类
AbstractByteBuf
-1
如果处理器迭代到或超出指定区域的末尾。
最后访问的索引如果ByteProcessor.process(byte)
返回false
。
public int forEachByteDesc(int index, int length, ByteProcessor processor)
ByteBuf
processor
以降序遍历此缓冲区的指定区域。
(即(index + length - 1)
, (index + length - 2)
,... index
)
forEachByteDesc
在类
AbstractByteBuf
-1
如果处理器迭代到或超出指定区域的开始位置。
上次访问的索引如果ByteProcessor.process(byte)
返回false
。
Copyright © 2008–2018 The Netty Project. All rights reserved.