模块  java.base
软件包  java.security

Class DigestInputStream

  • 实现的所有接口
    CloseableAutoCloseable

    public class DigestInputStream
    extends FilterInputStream
    透明流,使用通过流的位更新关联的消息摘要。

    要完成消息摘要计算,则需要调用一个digest方法对相关消息的调用此摘要输入流的一个消化后read方法。

    可以打开或关闭此流(请参阅on )。 当它打开时,对read方法之一的调用会导致消息摘要的更新。 但是当它关闭时,消息摘要不会更新。 默认情况下,流是打开的。

    请注意,摘要对象只能计算一个摘要(请参阅MessageDigest ),因此,为了计算中间摘要,调用者应保留摘要对象的句柄,并为每个要计算的摘要克隆它,使原始摘要保持不变。

    从以下版本开始:
    1.2
    另请参见:
    MessageDigestDigestOutputStream
    • 字段详细信息

      • digest

        protected MessageDigest digest
        与此流关联的消息摘要。
    • 构造方法详细信息

      • DigestInputStream

        public DigestInputStream​(InputStream stream,
                                 MessageDigest digest)
        使用指定的输入流和消息摘要创建摘要输入流。
        参数
        stream - 输入流。
        digest - 与此流关联的消息摘要。
    • 方法详细信息

      • setMessageDigest

        public void setMessageDigest​(MessageDigest digest)
        将指定的消息摘要与此流关联。
        参数
        digest - 与此流关联的消息摘要。
        另请参见:
        getMessageDigest()
      • read

        public int read()
                 throws IOException
        读取一个字节,并更新消息摘要(如果摘要功能打开)。 也就是说,此方法从输入流中读取一个字节,阻塞直到实际读取该字节。 如果摘要功能打开(参见on ),则此方法将在与此流关联的消息摘要上调用update ,并将读取的字节传递给它。
        重写:
        read in class FilterInputStream
        结果
        读取的字节。
        异常
        IOException - 如果发生I / O错误。
        另请参见:
        MessageDigest.update(byte)
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        读入字节数组,并更新消息摘要(如果摘要功能打开)。 也就是说,此方法从输入流读取最多len个字节到阵列b ,从偏移量off开始。 此方法将阻塞,直到实际读取数据。 如果摘要功能打开(参见on ),则此方法将在与此流关联的消息摘要上调用update ,并将数据传递给它。
        重写:
        read在课堂 FilterInputStream
        参数
        b - 读取数据的数组。
        off - 应放置数据的起始偏移量 b
        len - 从输入流读入b的最大字节数,从偏移量 off开始。
        结果
        实际读取的字节数。 这是小于len如果之前读取已到达流的末尾len字节。 如果没有读取字节,则返回-1,因为在进行调用时已经到达流的末尾。
        异常
        IOException - 如果发生I / O错误。
        另请参见:
        MessageDigest.update(byte[], int, int)
      • on

        public void on​(boolean on)
        打开或关闭摘要功能。 默认为打开。 当它打开时,对read方法之一的调用会导致消息摘要的更新。 但是当它关闭时,消息摘要不会更新。
        参数
        on - true表示打开摘要功能,false表示关闭它。
      • toString

        public String toString()
        打印此摘要输入流及其关联的消息摘要对象的字符串表示形式。
        重写:
        toString在课堂上 Object
        结果
        对象的字符串表示形式。