- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.security.DigestOutputStream
-
- All Implemented Interfaces:
-
Closeable
,Flushable
,AutoCloseable
public class DigestOutputStream extends FilterOutputStream
透明流,使用通过流的位更新关联的消息摘要。要完成消息摘要计算,则需要调用一个
digest
方法对相关消息的调用此摘要输出流的一个消化后write
种方法。可以打开或关闭此流(参见
on
)。 当它打开时,对其中一个write
方法的调用会导致消息摘要的更新。 但是当它关闭时,消息摘要不会更新。 默认值为流启用。- 从以下版本开始:
- 1.2
- 另请参见:
-
MessageDigest
,DigestInputStream
-
-
Field Summary
Fields Modifier and Type Field 描述 protected MessageDigest
digest
与此流相关联的消息摘要。-
Fields inherited from class java.io.FilterOutputStream
out
-
-
构造方法摘要
构造方法 Constructor 描述 DigestOutputStream(OutputStream stream, MessageDigest digest)
使用指定的输出流和消息摘要创建摘要输出流。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 MessageDigest
getMessageDigest()
返回与此流相关联的消息摘要。void
on(boolean on)
打开或关闭摘要功能。void
setMessageDigest(MessageDigest digest)
将指定的消息摘要与此流相关联。String
toString()
打印此摘要输出流及其相关消息摘要对象的字符串表示形式。void
write(byte[] b, int off, int len)
使用指定的子阵列更新消息摘要(如果摘要功能打开),并且无论如何将子阵列写入输出流。void
write(int b)
使用指定的字节更新消息摘要(如果摘要功能打开),并且无论如何将该字节写入输出流。-
Methods inherited from class java.io.FilterOutputStream
close, flush, write
-
-
-
-
字段详细信息
-
digest
protected MessageDigest digest
与此流相关联的消息摘要。
-
-
构造方法详细信息
-
DigestOutputStream
public DigestOutputStream(OutputStream stream, MessageDigest digest)
使用指定的输出流和消息摘要创建摘要输出流。- 参数
-
stream
- 输出流。 -
digest
- 要与此流关联的消息摘要。
-
-
方法详细信息
-
getMessageDigest
public MessageDigest getMessageDigest()
返回与此流相关联的消息摘要。- 结果
- 与此流相关联的消息摘要。
- 另请参见:
-
setMessageDigest(java.security.MessageDigest)
-
setMessageDigest
public void setMessageDigest(MessageDigest digest)
将指定的消息摘要与此流相关联。- 参数
-
digest
- 要与此流关联的消息摘要。 - 另请参见:
-
getMessageDigest()
-
write
public void write(int b) throws IOException
使用指定的字节更新消息摘要(如果摘要功能打开),并且无论如何将该字节写入输出流。 也就是说,如果摘要功能打开(见on
),则该方法调用update
与该流相关联的消息摘要,传递字节b
。 该方法然后将字节写入输出流,阻塞直到字节实际写入。- 重写:
-
write
在FilterOutputStream
- 参数
-
b
- 要用于更新和写入输出流的字节。 - 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
MessageDigest.update(byte)
-
write
public void write(byte[] b, int off, int len) throws IOException
使用指定的子阵列更新消息摘要(如果摘要功能打开),并且无论如何将子阵列写入输出流。 也就是说,如果摘要功能打开(见on
),此方法将调用update
与此流相关联的消息摘要,传递其子阵列规范。 然后,该方法将子阵列字节写入输出流,阻塞直到字节实际写入。- 重写:
-
write
在FilterOutputStream
- 参数
-
b
- 包含用于更新和写入输出流的子阵列的数组。 -
off
- 要更新和写入的第一个字节的偏移量为b
。 -
len
- 要从b
更新和写入的数据的字节数,从偏移off
开始。 - 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
MessageDigest.update(byte[], int, int)
-
on
public void on(boolean on)
打开或关闭摘要功能。 默认值为开。 当它打开时,对其中一个write
方法的调用会导致消息摘要的更新。 但是当它关闭时,消息摘要不会更新。- 参数
-
on
- true打开摘要功能,false将其关闭。
-
-