Module  java.base
软件包  java.security

Class DigestInputStream

  • All Implemented Interfaces:
    CloseableAutoCloseable


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

    要完成消息摘要计算,请在调用此摘要输入流的一个digest方法之后,在相关消息摘要上调用其中一个digest方法。

    可以打开或关闭此流(参见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与此流相关联的消息摘要,将其读取字节。
        重写:
        readFilterInputStream
        结果
        字节读取。
        异常
        IOException - 如果发生I / O错误。
        另请参见:
        MessageDigest.update(byte)
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        读取一个字节数组,并更新消息摘要(如果摘要功能打开)。 也就是说,此方法从输入流读取len个字节到阵列b ,从偏移off开始。 该方法阻塞,直到数据被实际读取。 如果摘要功能打开(见on ),则此方法将调用update与此流相关联的消息摘要,传递数据。
        重写:
        readFilterInputStream
        参数
        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​()
        打印此摘要输入流及其相关消息摘要对象的字符串表示形式。
        重写:
        toStringObject
        结果
        对象的字符串表示形式。