模块 org.redkale
程序包 org.redkale.util

类 ByteArray

  • 所有已实现的接口:
    ByteTuple

    public final class ByteArray
    extends Object
    implements ByteTuple
    简单的byte[]操作类。

    详情见: https://redkale.org

    作者:
    zhangjx
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      void backCount()
      count减一,调用前须保证count大于0
      ByteArray clear()
      清空数据,将count置为0,并不清掉byte[]的内容
      byte[] content()
      直接获取全部数据, 实际数据需要根据length长度来截取
      void copyTo​(byte[] buf)
      将buf内容覆盖到本对象内容中
      boolean deepEquals​(byte[] bytes)
      比较内容是否相同
      boolean deepEquals​(byte[] bytes, int offset, int length)
      比较内容是否相同
      boolean deepEquals​(ByteArray array)
      比较内容是否相同
      boolean deepEquals​(ByteTuple tuple)
      比较内容是否相同
      void directFrom​(byte[] content, int count)
      将content的内容直接给本对象
      void directFrom​(ByteArray array)
      将array的内容引用给本对象
      void directTo​(ByteArray array)
      将本对象的内容引用复制给array
      boolean equals​(Object obj)
      比较内容是否相同
      byte[] expand​(int len)  
      byte get​(int index)
      获取指定位置的byte值,须确保0 <= index < length
      byte[] getBytes()
      获取byte[]
      byte[] getBytes​(int offset, int length)
      获取byte[]
      char getChar​(int offset)
      获取指定位置的char值,须确保0 <= offset+2 < length
      double getDouble​(int offset)
      获取指定位置的double值,须确保0 <= offset+8 < length
      float getFloat​(int offset)
      获取指定位置的float值,须确保0 <= offset+4 < length
      int getInt​(int offset)
      获取指定位置的int值,须确保0 <= offset+4 < length
      byte getLastByte()
      获取最后一个字节值,调用前须保证count大于0
      long getLong​(int offset)
      获取指定位置的long值,须确保0 <= offset+8 < length
      int getShort​(int offset)
      获取指定位置的short值,须确保0 <= offset+2 < length
      Uint128 getUint128​(int offset)
      获取指定位置的Uint128值,须确保0 <= offset+16 < length
      int hashCode()  
      int indexOf​(byte value)
      查找指定值第一次出现的位置,没有返回-1
      int indexOf​(int offset, byte value)
      从指定的起始位置查询value值出现的位置,没有返回-1
      int indexOf​(int offset, char value)
      从指定的起始位置查询value值出现的位置,没有返回-1
      int indexOf​(int offset, int limit, byte value)
      从指定的起始位置和长度查询value值出现的位置,没有返回-1
      int indexOf​(int offset, int limit, char value)
      从指定的起始位置和长度查询value值出现的位置,没有返回-1
      boolean isEmpty()
      判断内容是否为空
      int lastIndexOf​(byte value)
      查找指定值第一次出现的位置,没有返回-1
      int lastIndexOf​(char value)
      查找指定值第一次出现的位置,没有返回-1
      int lastIndexOf​(int offset, byte value)
      从指定的起始位置查询value值出现的位置,没有返回-1
      int lastIndexOf​(int offset, char value)
      从指定的起始位置查询value值出现的位置,没有返回-1
      int lastIndexOf​(int offset, int length, byte value)
      从指定的起始位置和长度查询value值出现的位置,没有返回-1
      int lastIndexOf​(int offset, int length, char value)
      从指定的起始位置和长度查询value值出现的位置,没有返回-1
      int length()
      获取字节长度
      OutputStream newOutputStream()
      生成一个OutputStream
      int offset()  
      ByteArray position​(int pos)
      设置count的新位置
      ByteArray put​(byte value)
      写入一个byte值
      ByteArray put​(byte... values)
      写入一组byte值
      ByteArray put​(byte[] values, int offset, int length)
      写入一组byte值
      ByteArray put​(byte value1, byte value2)
      写入两个byte值
      ByteArray put​(byte value1, byte value2, byte value3)
      写入三个byte值
      ByteArray put​(int offset, byte... values)
      指定位置写入一组byte值, content.length 必须不能小于offset+values.length
      ByteArray put​(int poffset, byte[] values, int offset, int length)
      写入一组byte值, content.length 必须不能小于poffset+length
      void put​(ByteBuffer buffer)
      将ByteBuffer的内容读取到本对象中
      ByteArray put​(ByteBuffer buffer, int length)
      写入ByteBuffer指定长度的数据
      ByteArray put​(ByteArray array, int offset, int length)
      写入ByteArray中的一部分
      ByteArray put​(ByteTuple tuple)
      写入一组byte值
      ByteArray putByte​(char value)  
      ByteArray putByte​(int value)  
      ByteArray putByte​(int offset, byte value)
      写入一个byte值, content.length 必须不能小于offset+1
      ByteArray putByte​(int offset, int value)
      写入一个byte值, content.length 必须不能小于offset+1
      ByteArray putByte​(short value)  
      ByteArray putChar​(char value)
      写入一个char值
      ByteArray putChar​(int offset, char value)
      写入一个char值, content.length 必须不能小于offset+2
      ByteArray putDouble​(double value)
      写入一个double值
      ByteArray putDouble​(int offset, double value)
      指定位置写入一个double值, content.length 必须不能小于offset+8
      ByteArray putFloat​(float value)
      写入一个float值
      ByteArray putFloat​(int offset, float value)
      指定位置写入一个float值, content.length 必须不能小于offset+4
      ByteArray putInt​(int value)
      写入一个int值
      ByteArray putInt​(int offset, int value)
      指定位置写入一个int值, content.length 必须不能小于offset+4
      ByteArray putLong​(int offset, long value)
      指定位置写入一个long值, content.length 必须不能小于offset+8
      ByteArray putLong​(long value)
      写入一个long值
      ByteArray putMedium​(int value)
      写入一个3字节的int值
      ByteArray putMedium​(int offset, int value)
      指定位置写入一个3字节的int值, content.length 必须不能小于offset+3
      ByteArray putPlaceholder​(int length)  
      ByteArray putShort​(char value)
      写入一个short值
      ByteArray putShort​(int value)
      写入一个short值
      ByteArray putShort​(int offset, short value)
      写入一个short值, content.length 必须不能小于offset+2
      ByteArray putShort​(short value)
      写入一个short值
      ByteArray putUint128​(int offset, Uint128 value)
      指定位置写入一个Uint128值, content.length 必须不能小于offset+16
      ByteArray putUint128​(Uint128 value)
      写入一个Uint128值
      ByteArray putUnsignedInt​(int offset, long value)
      指定位置写入一个 无符号int值, content.length 必须不能小于offset+4
      ByteArray putUnsignedInt​(long value)
      写入一个int值
      ByteArray putUnsignedMedium​(int value)
      写入一个3字节的int值
      ByteArray putUnsignedMedium​(int offset, int value)
      指定位置写入一个3字节的int值, content.length 必须不能小于offset+3
      ByteArray putUnsignedShort​(int value)
      写入一个short值
      ByteArray putUnsignedShort​(int offset, int value)
      写入一个无符号short值, content.length 必须不能小于offset+2
      void putWithoutCheck​(byte value)
      写入一个byte值
      boolean recycle()  
      ByteArray removeLastByte()
      移除最后一个字节
      ReadableByteChannel toChannel()  
      String toString()  
      String toString​(boolean latin1, int offset, int len, Charset charset)
      将指定的起始位置和长度按指定字符集转成字符串
      String toString​(boolean latin1, Charset charset)
      按指定字符集转成字符串
      String toString​(int offset, int len, Charset charset)
      将指定的起始位置和长度按指定字符集转成字符串
      String toString​(int offset, Charset charset)
      将指定的起始位置按指定字符集转成字符串
      String toString​(Charset charset)
      按指定字符集转成字符串
      String toUTF8String()  
      ByteBuffer wrapByteBuffer()  
    • 构造器详细资料

      • ByteArray

        public ByteArray()
      • ByteArray

        public ByteArray​(int size)
      • ByteArray

        public ByteArray​(ByteTuple tuple)
      • ByteArray

        public ByteArray​(byte[] bs)
      • ByteArray

        public ByteArray​(byte[] bs,
                         int offset,
                         int length)
    • 方法详细资料

      • clear

        public ByteArray clear()
        清空数据,将count置为0,并不清掉byte[]的内容
        返回:
        ByteArray 是否相同
      • recycle

        public boolean recycle()
      • expand

        public byte[] expand​(int len)
      • wrapByteBuffer

        public ByteBuffer wrapByteBuffer()
      • position

        public ByteArray position​(int pos)
        设置count的新位置
        参数:
        pos - 新位置
        返回:
        ByteArray
      • newOutputStream

        public OutputStream newOutputStream()
        生成一个OutputStream
        返回:
        OutputStream
      • deepEquals

        public boolean deepEquals​(byte[] bytes)
        比较内容是否相同
        参数:
        bytes - 待比较内容
        返回:
        是否相同
      • deepEquals

        public boolean deepEquals​(byte[] bytes,
                                  int offset,
                                  int length)
        比较内容是否相同
        参数:
        bytes - 待比较内容
        offset - 偏移量
        length - 长度
        返回:
        是否相同
      • deepEquals

        public boolean deepEquals​(ByteTuple tuple)
        比较内容是否相同
        参数:
        tuple - 待比较内容
        返回:
        是否相同
      • deepEquals

        public boolean deepEquals​(ByteArray array)
        比较内容是否相同
        参数:
        array - 待比较内容
        返回:
        是否相同
      • equals

        public boolean equals​(Object obj)
        比较内容是否相同
        覆盖:
        equals 在类中 Object
        参数:
        obj - 待比较内容
        返回:
        是否相同
      • hashCode

        public int hashCode()
        覆盖:
        hashCode 在类中 Object
      • isEmpty

        public boolean isEmpty()
        判断内容是否为空
        返回:
        是否为空
      • length

        public int length()
        获取字节长度
        指定者:
        length 在接口中 ByteTuple
        返回:
        长度
      • get

        public byte get​(int index)
        获取指定位置的byte值,须确保0 <= index < length
        参数:
        index - 位置
        返回:
        byte值
      • getChar

        public char getChar​(int offset)
        获取指定位置的char值,须确保0 <= offset+2 < length
        参数:
        offset - 位置
        返回:
        short值
      • getShort

        public int getShort​(int offset)
        获取指定位置的short值,须确保0 <= offset+2 < length
        参数:
        offset - 位置
        返回:
        short值
      • getInt

        public int getInt​(int offset)
        获取指定位置的int值,须确保0 <= offset+4 < length
        参数:
        offset - 位置
        返回:
        int值
      • getFloat

        public float getFloat​(int offset)
        获取指定位置的float值,须确保0 <= offset+4 < length
        参数:
        offset - 位置
        返回:
        float值
      • getLong

        public long getLong​(int offset)
        获取指定位置的long值,须确保0 <= offset+8 < length
        参数:
        offset - 位置
        返回:
        long值
      • getDouble

        public double getDouble​(int offset)
        获取指定位置的double值,须确保0 <= offset+8 < length
        参数:
        offset - 位置
        返回:
        double值
      • getUint128

        public Uint128 getUint128​(int offset)
        获取指定位置的Uint128值,须确保0 <= offset+16 < length
        参数:
        offset - 位置
        返回:
        Uint128值
      • getLastByte

        public byte getLastByte()
        获取最后一个字节值,调用前须保证count大于0
        返回:
        byte值
      • backCount

        public void backCount()
        count减一,调用前须保证count大于0
      • copyTo

        public void copyTo​(byte[] buf)
        将buf内容覆盖到本对象内容中
        参数:
        buf - 目标容器
      • directFrom

        public void directFrom​(ByteArray array)
        将array的内容引用给本对象
        参数:
        array - ByteArray
      • directFrom

        public void directFrom​(byte[] content,
                               int count)
        将content的内容直接给本对象
        参数:
        content - 内容
        count - 长度
      • directTo

        public void directTo​(ByteArray array)
        将本对象的内容引用复制给array
        参数:
        array - ByteArray
      • content

        public byte[] content()
        直接获取全部数据, 实际数据需要根据length长度来截取
        指定者:
        content 在接口中 ByteTuple
        返回:
        byte[]
      • getBytes

        public byte[] getBytes()
        获取byte[]
        返回:
        byte[]
      • getBytes

        public byte[] getBytes​(int offset,
                               int length)
        获取byte[]
        参数:
        offset - 偏移位
        length - 长度
        返回:
        byte[]
      • indexOf

        public int indexOf​(byte value)
        查找指定值第一次出现的位置,没有返回-1
        参数:
        value - 查询值
        返回:
        所在位置
      • indexOf

        public int indexOf​(int offset,
                           char value)
        从指定的起始位置查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        value - 查询值
        返回:
        所在位置
      • indexOf

        public int indexOf​(int offset,
                           byte value)
        从指定的起始位置查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        value - 查询值
        返回:
        所在位置
      • indexOf

        public int indexOf​(int offset,
                           int limit,
                           char value)
        从指定的起始位置和长度查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        limit - 长度限制
        value - 查询值
        返回:
        所在位置
      • indexOf

        public int indexOf​(int offset,
                           int limit,
                           byte value)
        从指定的起始位置和长度查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        limit - 长度限制
        value - 查询值
        返回:
        所在位置
      • lastIndexOf

        public int lastIndexOf​(byte value)
        查找指定值第一次出现的位置,没有返回-1
        参数:
        value - 查询值
        返回:
        所在位置
      • lastIndexOf

        public int lastIndexOf​(char value)
        查找指定值第一次出现的位置,没有返回-1
        参数:
        value - 查询值
        返回:
        所在位置
      • lastIndexOf

        public int lastIndexOf​(int offset,
                               char value)
        从指定的起始位置查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        value - 查询值
        返回:
        所在位置
      • lastIndexOf

        public int lastIndexOf​(int offset,
                               byte value)
        从指定的起始位置查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        value - 查询值
        返回:
        所在位置
      • lastIndexOf

        public int lastIndexOf​(int offset,
                               int length,
                               char value)
        从指定的起始位置和长度查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        length - 长度限制
        value - 查询值
        返回:
        所在位置
      • lastIndexOf

        public int lastIndexOf​(int offset,
                               int length,
                               byte value)
        从指定的起始位置和长度查询value值出现的位置,没有返回-1
        参数:
        offset - 起始位置
        length - 长度限制
        value - 查询值
        返回:
        所在位置
      • removeLastByte

        public ByteArray removeLastByte()
        移除最后一个字节
        返回:
        ByteArray
      • putPlaceholder

        public ByteArray putPlaceholder​(int length)
      • putChar

        public ByteArray putChar​(char value)
        写入一个char值
        参数:
        value - int值
        返回:
        ByteArray
      • putChar

        public ByteArray putChar​(int offset,
                                 char value)
        写入一个char值, content.length 必须不能小于offset+2
        参数:
        offset - 偏移量
        value - char值
        返回:
        ByteArray
      • putShort

        public ByteArray putShort​(short value)
        写入一个short值
        参数:
        value - short值
        返回:
        ByteArray
      • putShort

        public ByteArray putShort​(char value)
        写入一个short值
        参数:
        value - short值
        返回:
        ByteArray
      • putShort

        public ByteArray putShort​(int value)
        写入一个short值
        参数:
        value - short值
        返回:
        ByteArray
      • putUnsignedShort

        public ByteArray putUnsignedShort​(int value)
        写入一个short值
        参数:
        value - short值
        返回:
        ByteArray
      • putUnsignedShort

        public ByteArray putUnsignedShort​(int offset,
                                          int value)
        写入一个无符号short值, content.length 必须不能小于offset+2
        参数:
        offset - 偏移量
        value - short值
        返回:
        ByteArray
      • putShort

        public ByteArray putShort​(int offset,
                                  short value)
        写入一个short值, content.length 必须不能小于offset+2
        参数:
        offset - 偏移量
        value - short值
        返回:
        ByteArray
      • putMedium

        public ByteArray putMedium​(int value)
        写入一个3字节的int值
        参数:
        value - int值
        返回:
        ByteArray
      • putMedium

        public ByteArray putMedium​(int offset,
                                   int value)
        指定位置写入一个3字节的int值, content.length 必须不能小于offset+3
        参数:
        offset - 偏移量
        value - int值
        返回:
        ByteArray
      • putUnsignedMedium

        public ByteArray putUnsignedMedium​(int value)
        写入一个3字节的int值
        参数:
        value - int值
        返回:
        ByteArray
      • putUnsignedMedium

        public ByteArray putUnsignedMedium​(int offset,
                                           int value)
        指定位置写入一个3字节的int值, content.length 必须不能小于offset+3
        参数:
        offset - 偏移量
        value - int值
        返回:
        ByteArray
      • putInt

        public ByteArray putInt​(int value)
        写入一个int值
        参数:
        value - int值
        返回:
        ByteArray
      • putUnsignedInt

        public ByteArray putUnsignedInt​(long value)
        写入一个int值
        参数:
        value - int值
        返回:
        ByteArray
      • putInt

        public ByteArray putInt​(int offset,
                                int value)
        指定位置写入一个int值, content.length 必须不能小于offset+4
        参数:
        offset - 偏移量
        value - int值
        返回:
        ByteArray
      • putUnsignedInt

        public ByteArray putUnsignedInt​(int offset,
                                        long value)
        指定位置写入一个 无符号int值, content.length 必须不能小于offset+4
        参数:
        offset - 偏移量
        value - int值
        返回:
        ByteArray
      • putFloat

        public ByteArray putFloat​(float value)
        写入一个float值
        参数:
        value - float值
        返回:
        ByteArray
      • putFloat

        public ByteArray putFloat​(int offset,
                                  float value)
        指定位置写入一个float值, content.length 必须不能小于offset+4
        参数:
        offset - 偏移量
        value - float值
        返回:
        ByteArray
      • putLong

        public ByteArray putLong​(long value)
        写入一个long值
        参数:
        value - long值
        返回:
        ByteArray
      • putLong

        public ByteArray putLong​(int offset,
                                 long value)
        指定位置写入一个long值, content.length 必须不能小于offset+8
        参数:
        offset - 偏移量
        value - long值
        返回:
        ByteArray
      • putDouble

        public ByteArray putDouble​(double value)
        写入一个double值
        参数:
        value - double值
        返回:
        ByteArray
      • putDouble

        public ByteArray putDouble​(int offset,
                                   double value)
        指定位置写入一个double值, content.length 必须不能小于offset+8
        参数:
        offset - 偏移量
        value - double值
        返回:
        ByteArray
      • putUint128

        public ByteArray putUint128​(Uint128 value)
        写入一个Uint128值
        参数:
        value - Uint128值
        返回:
        ByteArray
      • putUint128

        public ByteArray putUint128​(int offset,
                                    Uint128 value)
        指定位置写入一个Uint128值, content.length 必须不能小于offset+16
        参数:
        offset - 偏移量
        value - Uint128值
        返回:
        ByteArray
      • putByte

        public ByteArray putByte​(short value)
      • putByte

        public ByteArray putByte​(char value)
      • putByte

        public ByteArray putByte​(int value)
      • putWithoutCheck

        public void putWithoutCheck​(byte value)
        写入一个byte值
        参数:
        value - byte值
      • putByte

        public ByteArray putByte​(int offset,
                                 byte value)
        写入一个byte值, content.length 必须不能小于offset+1
        参数:
        offset - 偏移量
        value - byte值
        返回:
        ByteArray
      • putByte

        public ByteArray putByte​(int offset,
                                 int value)
        写入一个byte值, content.length 必须不能小于offset+1
        参数:
        offset - 偏移量
        value - byte值
        返回:
        ByteArray
      • put

        public ByteArray put​(byte value)
        写入一个byte值
        参数:
        value - byte值
        返回:
        ByteArray
      • put

        public ByteArray put​(byte value1,
                             byte value2)
        写入两个byte值
        参数:
        value1 - byte值
        value2 - byte值
        返回:
        ByteArray
      • put

        public ByteArray put​(byte value1,
                             byte value2,
                             byte value3)
        写入三个byte值
        参数:
        value1 - byte值
        value2 - byte值
        value3 - byte值
        返回:
        ByteArray
      • put

        public ByteArray put​(@Nonnull
                             byte... values)
        写入一组byte值
        参数:
        values - 一组byte值
        返回:
        ByteArray
      • put

        public ByteArray put​(int offset,
                             @Nonnull
                             byte... values)
        指定位置写入一组byte值, content.length 必须不能小于offset+values.length
        参数:
        offset - 偏移量
        values - 一组byte值
        返回:
        ByteArray
      • put

        public ByteArray put​(@Nonnull
                             byte[] values,
                             int offset,
                             int length)
        写入一组byte值
        参数:
        values - 一组byte值
        offset - 偏移量
        length - 长度
        返回:
        ByteArray
      • put

        public ByteArray put​(int poffset,
                             @Nonnull
                             byte[] values,
                             int offset,
                             int length)
        写入一组byte值, content.length 必须不能小于poffset+length
        参数:
        poffset - 偏移量
        values - 一组byte值
        offset - 偏移量
        length - 长度
        返回:
        ByteArray
      • put

        public void put​(@Nullable
                        ByteBuffer buffer)
        将ByteBuffer的内容读取到本对象中
        参数:
        buffer - ByteBuffer
      • put

        public ByteArray put​(@Nonnull
                             ByteArray array,
                             int offset,
                             int length)
        写入ByteArray中的一部分
        参数:
        array - ByteArray
        offset - 偏移量
        length - 长度
        返回:
        ByteArray
      • put

        public ByteArray put​(@Nonnull
                             ByteBuffer buffer,
                             int length)
        写入ByteBuffer指定长度的数据
        参数:
        buffer - 数据
        length - 指定长度
        返回:
        ByteArray
      • toUTF8String

        public String toUTF8String()
      • toString

        public String toString​(Charset charset)
        按指定字符集转成字符串
        参数:
        charset - 字符集
        返回:
        字符串
      • toString

        public String toString​(boolean latin1,
                               Charset charset)
        按指定字符集转成字符串
        参数:
        latin1 - 是否LATIN1
        charset - 字符集
        返回:
        字符串
      • toString

        public String toString​(int offset,
                               int len,
                               Charset charset)
        将指定的起始位置和长度按指定字符集转成字符串
        参数:
        offset - 起始位置
        len - 长度
        charset - 字符集
        返回:
        字符串
      • toString

        public String toString​(boolean latin1,
                               int offset,
                               int len,
                               Charset charset)
        将指定的起始位置和长度按指定字符集转成字符串
        参数:
        latin1 - 是否LATIN1
        offset - 起始位置
        len - 长度
        charset - 字符集
        返回:
        字符串
      • toString

        public String toString​(int offset,
                               Charset charset)
        将指定的起始位置按指定字符集转成字符串
        参数:
        offset - 起始位置
        charset - 字符集
        返回:
        字符串