java.lang.Object
|
+----java.io.InputStream
|
+----java.io.FilterInputStream
|
+----java.security.DigestInputStream
一个透明的流,它用经过这个流的比特修改与之相链的消息摘要。
为了完成消息摘要的计算,在调用该摘要输入流的一个
read 方法后,调用一个相关消息摘要的
digest 方法。
可以打开或关闭这个流 (参见 on)。当它打开时,调用 read 将得到更新的消息摘要。但当它关闭时,不更新消息摘要。流的缺省状态是打开。
注意摘要对象只计算一个摘要 ( 参见 MessageDigest),为了计算中间的摘要,调用者必须保持该摘要的句柄,并为每个要计算的摘要复制一个摘要对象,而不需要动原始的摘要对象。
protected MessageDigest digest
public DigestInputStream(InputStream stream,
MessageDigest digest)
public MessageDigest getMessageDigest()
public void setMessageDigest(MessageDigest digest)
public int read() throws IOException
update,并将读到的字节传给它。
public int read(byte b[],
int off,
int len) throws IOException
len 个字节从输入流读到数组 b
中,从偏移量为 off 处开始存放。在实际读入数据之前该方法将阻塞等待。如果启动了该摘要功能 ( 参见 on),该方法调用与这个流相联的消息摘要的 update,并将读到数据传给它。
b 中开始存放数据的偏移量。
off 开始存放在数组 b 中的最大的字节数。
len 个字节之前到达了流的末尾,它将小于 len 。如果因为当调用时已经到达了流的末尾而没有读入字节,将返回 -1。
public void on(boolean on)
public String toString()