@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, touchadjustMarkers, 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, writeZerogetDoubleLE, getFloatLE, readDoubleLE, readFloatLE, setDoubleLE, setFloatLE, writeDoubleLE, writeFloatLEpublic 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.