java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.security.DigestInputStream
- 所有已实现的接口:
Closeable
,AutoCloseable
一个透明流,它使用通过流的位来更新关联的消息摘要。
要完成消息摘要计算,请在调用此摘要输入流的 read
方法之一后调用关联消息摘要的 digest
方法之一。
可以打开或关闭此流(请参阅 on
)。当它打开时,对 read
方法之一的调用会导致消息摘要的更新。但是当它关闭时,消息摘要不会更新。默认是打开流。
请注意,摘要对象只能计算一个摘要(请参阅 MessageDigest
),因此为了计算中间摘要,调用者应保留摘要对象的句柄,并为每个要计算的摘要克隆它,保持原始摘要不变。
- 实现注意事项:
-
此实现仅在消息摘要为 打开 时使用从输入流中实际读取的数据更新消息摘要。这包括各种
read
方法、transferTo
、readAllBytes
和readNBytes
。请注意,skip
方法绕过的数据将被忽略。另一方面,如果底层流支持mark
和reset
方法,并且在reset
之后再次读取相同的数据,则再次更新消息摘要。 - 自从:
- 1.2
- 参见:
-
字段摘要
字段在类 java.io.FilterInputStream 中声明的字段
in
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述返回与此流关联的消息摘要。void
on
(boolean on) 打开或关闭摘要功能。int
read()
读取一个字节,并更新消息摘要(如果摘要功能打开)。int
read
(byte[] b, int off, int len) 读入字节数组,并更新消息摘要(如果摘要功能打开)。void
setMessageDigest
(MessageDigest digest) 将指定的消息摘要与此流相关联。toString()
打印此摘要输入流及其关联的消息摘要对象的字符串表示形式。在类 java.io.FilterInputStream 中声明的方法
available, close, mark, markSupported, read, reset, skip
在类 java.io.InputStream 中声明的方法
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
字段详细信息
-
digest
与此流关联的消息摘要。
-
-
构造方法详细信息
-
DigestInputStream
使用指定的输入流和消息摘要创建摘要输入流。- 参数:
stream
- 输入流。digest
- 与此流关联的消息摘要。
-
-
方法详情
-
getMessageDigest
返回与此流关联的消息摘要。- 返回:
- 与此流关联的消息摘要。
- 参见:
-
setMessageDigest
将指定的消息摘要与此流相关联。- 参数:
digest
- 与此流关联的消息摘要。- 参见:
-
read
读取一个字节,并更新消息摘要(如果摘要功能打开)。也就是说,此方法从输入流中读取一个字节,阻塞直到实际读取该字节。如果摘要功能打开(请参阅on
),则此方法将在与此流关联的消息摘要上调用update
,将读取的字节传递给它。- 重写:
read
在类FilterInputStream
中- 返回:
- 读取的字节。
- 抛出:
IOException
- 如果发生 I/O 错误。- 参见:
-
read
读入字节数组,并更新消息摘要(如果摘要功能打开)。也就是说,此方法从输入流中读取最多len
个字节到数组b
中,从偏移量off
开始。此方法会阻塞,直到实际读取数据为止。如果摘要功能打开(请参阅on
),则此方法将调用update
与此流关联的消息摘要,并将数据传递给它。- 重写:
read
在类FilterInputStream
中- 参数:
b
- 读取数据的数组。off
-b
中应放置数据的起始偏移量。len
- 从输入流中读取到 b 的最大字节数,从偏移量off
开始。- 返回:
-
实际读取的字节数。如果在读取
len
字节之前到达流的末尾,则这小于len
。如果没有读取任何字节,则返回 -1,因为在进行调用时已经到达流的末尾。 - 抛出:
IOException
- 如果发生 I/O 错误。- 参见:
-
on
public void on(boolean on) 打开或关闭摘要功能。默认是打开的。当它打开时,对read
方法之一的调用会导致消息摘要的更新。但是当它关闭时,消息摘要不会更新。- 参数:
on
-true
打开摘要功能,false
将其关闭。
-
toString
打印此摘要输入流及其关联的消息摘要对象的字符串表示形式。
-