Package org.miaixz.bus.core.io.buffer
Class FastByteBuffer
java.lang.Object
org.miaixz.bus.core.io.buffer.FastByteBuffer
代码移植自blade 快速缓冲,将数据存放在缓冲集中,取代以往的单一数组
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionappend(byte element) 向快速缓冲加入一个字节append(byte[] array) 向快速缓冲加入数据append(byte[] array, int off, int len) 向快速缓冲加入数据append(FastByteBuffer buff) 将另一个快速缓冲加入到自身byte[]array(int index) 根据索引位返回缓冲集中的缓冲byteget(int index) 根据索引位返回一个字节intindex()当前缓冲位于缓冲区的索引位booleanisEmpty()是否为空intoffset()获取当前缓冲偏移量voidreset()复位缓冲intsize()长度byte[]toArray()返回快速缓冲中的数据byte[]toArray(int start, int len) 返回快速缓冲中的数据byte[]返回快速缓冲中的数据,如果缓冲区中的数据长度固定,则直接返回原始数组 注意此方法共享数组,不能修改数组内容!
-
Constructor Details
-
FastByteBuffer
public FastByteBuffer()构造 -
FastByteBuffer
public FastByteBuffer(int size) 构造- Parameters:
size- 一个缓冲区的最小字节数
-
-
Method Details
-
append
向快速缓冲加入数据- Parameters:
array- 数据off- 偏移量len- 字节数- Returns:
- 快速缓冲自身 @see FastByteBuffer
-
append
向快速缓冲加入数据- Parameters:
array- 数据- Returns:
- 快速缓冲自身 @see FastByteBuffer
-
append
向快速缓冲加入一个字节- Parameters:
element- 一个字节的数据- Returns:
- 快速缓冲自身 @see FastByteBuffer
-
append
将另一个快速缓冲加入到自身- Parameters:
buff- 快速缓冲- Returns:
- 快速缓冲自身 @see FastByteBuffer
-
size
public int size()长度- Returns:
- 长度
-
isEmpty
public boolean isEmpty()是否为空- Returns:
- 是否为空
-
index
public int index()当前缓冲位于缓冲区的索引位- Returns:
currentBufferIndex
-
offset
public int offset()获取当前缓冲偏移量- Returns:
- 当前缓冲偏移量
-
array
public byte[] array(int index) 根据索引位返回缓冲集中的缓冲- Parameters:
index- 索引位- Returns:
- 缓冲
-
reset
public void reset()复位缓冲 -
toArray
public byte[] toArray()返回快速缓冲中的数据- Returns:
- 快速缓冲中的数据
-
toArrayZeroCopyIfPossible
public byte[] toArrayZeroCopyIfPossible()返回快速缓冲中的数据,如果缓冲区中的数据长度固定,则直接返回原始数组 注意此方法共享数组,不能修改数组内容!- Returns:
- 快速缓冲中的数据
-
toArray
public byte[] toArray(int start, int len) 返回快速缓冲中的数据- Parameters:
start- 逻辑起始位置len- 逻辑字节长- Returns:
- 快速缓冲中的数据
-
get
public byte get(int index) 根据索引位返回一个字节- Parameters:
index- 索引位- Returns:
- 一个字节
-