Module bus.core

Class FastByteBuffer

java.lang.Object
org.miaixz.bus.core.io.buffer.FastBuffer
org.miaixz.bus.core.io.buffer.FastByteBuffer

public class FastByteBuffer extends FastBuffer
快速缓冲,将数据存放在缓冲集中,取代以往的单一数组
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • FastByteBuffer

      public FastByteBuffer()
      构造
    • FastByteBuffer

      public FastByteBuffer(int size)
      构造
      Parameters:
      size - 一个缓冲区的最小字节数
  • Method Details

    • append

      public FastByteBuffer append(byte[] array, int off, int len)
      向快速缓冲加入数据
      Parameters:
      array - 数据
      off - 偏移量
      len - 字节数
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • append

      public FastByteBuffer append(byte[] array)
      向快速缓冲加入数据
      Parameters:
      array - 数据
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • append

      public FastByteBuffer append(byte element)
      向快速缓冲加入一个字节
      Parameters:
      element - 一个字节的数据
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • append

      public FastByteBuffer append(FastByteBuffer buff)
      将另一个快速缓冲加入到自身
      Parameters:
      buff - 快速缓冲
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • array

      public byte[] array(int index)
      根据索引位返回缓冲集中的缓冲
      Parameters:
      index - 索引位
      Returns:
      缓冲
    • reset

      public void reset()
      Description copied from class: FastBuffer
      复位缓冲
      Overrides:
      reset in class FastBuffer
    • length

      public int length()
      Description copied from class: FastBuffer
      获取缓冲总长度
      Overrides:
      length in class FastBuffer
      Returns:
      缓冲总长度
    • toArrayZeroCopyIfPossible

      public byte[] toArrayZeroCopyIfPossible()
      返回快速缓冲中的数据,如果缓冲区中的数据长度固定,则直接返回原始数组
      注意此方法共享数组,不能修改数组内容!
      Returns:
      快速缓冲中的数据
    • toArray

      public byte[] toArray()
      返回快速缓冲中的数据
      Returns:
      快速缓冲中的数据
    • toArray

      public byte[] toArray(int start, int len)
      返回快速缓冲中的数据
      Parameters:
      start - 逻辑起始位置
      len - 逻辑字节长
      Returns:
      快速缓冲中的数据
    • get

      public byte get(int index)
      根据索引位返回一个字节
      Parameters:
      index - 索引位
      Returns:
      一个字节
    • ensureCapacity

      protected void ensureCapacity(int capacity)
      Description copied from class: FastBuffer
      检查现有缓冲区是否满足capacity,不满足则分配新的区域分配下一个缓冲区,不会小于1024
      Specified by:
      ensureCapacity in class FastBuffer
      Parameters:
      capacity - 理想缓冲区字节数