Module java.base
Package java.util.zip

Interface Checksum

所有已知的实现类:
Adler32, CRC32, CRC32C

public interface Checksum
代表数据校验和的接口。
自版本:
1.1
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    返回当前校验和值。
    void
    reset()
    将校验和重置为其初始值。
    default void
    update(byte[] b)
    使用指定的字节数组更新当前校验和。
    void
    update(byte[] b, int off, int len)
    使用指定的字节数组更新当前校验和。
    void
    update(int b)
    使用指定的字节更新当前校验和。
    default void
    update(ByteBuffer buffer)
    使用指定缓冲区中的字节更新当前校验和。
  • Method Details

    • update

      void update(int b)
      使用指定的字节更新当前校验和。
      参数:
      b - 用于更新校验和的字节
    • update

      default void update(byte[] b)
      使用指定的字节数组更新当前校验和。
      实现要求:
      此默认实现等同于调用 update(b, 0, b.length)
      参数:
      b - 用于更新校验和的字节数组
      抛出:
      NullPointerException - 如果 bnull
      自版本:
      9
    • update

      void update(byte[] b, int off, int len)
      使用指定的字节数组更新当前校验和。
      参数:
      b - 用于更新校验和的字节数组
      off - 数据的起始偏移量
      len - 用于更新的字节数
    • update

      default void update(ByteBuffer buffer)
      使用指定缓冲区中的字节更新当前校验和。校验和将使用缓冲区中剩余的字节进行更新,从缓冲区的位置开始。返回时,缓冲区的位置将更新为其限制;其限制不会被更改。
      API 注释:
      对于 DirectByteBuffer 和其他没有支持数组的 ByteBuffer 实现,此接口的实现者应该重写此方法以获得最佳性能。
      实现要求:
      默认实现具有以下行为。
      对于由可访问字节数组支持的 ByteBuffer。
      
       update(buffer.array(),
              buffer.position() + buffer.arrayOffset(),
              buffer.remaining());
       
      对于不由可访问字节数组支持的 ByteBuffer。
      
       byte[] b = new byte[Math.min(buffer.remaining(), 4096)];
       while (buffer.hasRemaining()) {
           int length = Math.min(buffer.remaining(), b.length);
           buffer.get(b, 0, length);
           update(b, 0, length);
       }
       
      参数:
      buffer - 用于更新校验和的 ByteBuffer
      抛出:
      NullPointerException - 如果 buffernull
      自版本:
      9
    • getValue

      long getValue()
      返回当前校验和值。
      返回:
      当前校验和值
    • reset

      void reset()
      将校验和重置为其初始值。