java.security

接口
异常
java.lang.Object
  继承者 java.io.OutputStream
      继承者 java.io.FilterOutputStream
          继承者 java.security.DigestOutputStream
所有已实现的接口:
Closeable, Flushable

public class DigestOutputStream
     
extends FilterOutputStream

使用通过流的位更新关联消息摘要的透明流。

要完成消息摘要计算,先要调用此摘要输出流的一个 write 方法,之后在关联的消息摘要上调用 digest 方法之一。

开启或关闭此流都是可能的(参见 on)。开启时,调用 write 方法之一将导致消息摘要的更新。但是关闭时,不更新消息摘要。流在默认情况下是开启的。

另请参见:
MessageDigest, DigestInputStream

字段摘要
protected  MessageDigest digest
          与此流关联的消息摘要。
 
从类 java.io.FilterOutputStream 继承的字段
out
 
构造方法摘要
DigestOutputStream(OutputStream stream, MessageDigest digest)
          使用指定的输出流和消息摘要创建一个摘要输出流。
 
方法摘要
 MessageDigest getMessageDigest()
          返回与此流关联的消息摘要。
 void on(boolean on)
          开启或关闭摘要功能。
 void setMessageDigest(MessageDigest digest)
          将指定的消息摘要与此流相关联。
 String toString()
          打印此摘要输出流及其关联的消息摘要对象的字符串表示形式。
 void write(byte[] b, int off, int len)
          使用指定的子数组更新消息摘要(如果开启了摘要功能),并将子数组写入输出流(不管是否开启了摘要功能)。
 void write(int b)
          使用指定的字节更新消息摘要(如果开启了摘要功能),并将字节写入输出流(不管是否开启了摘要功能)。
 
从类 java.io.FilterOutputStream 继承的方法
close, flush, write
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

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 传递给该方法。然后,此方法将字节写入输出流,在实际写入字节前一直为阻塞状态。

覆盖:
FilterOutputStream 中的 write
参数:
b - 要用于更新和写入输出流的字节。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
MessageDigest.update(byte)

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
使用指定的子数组更新消息摘要(如果开启了摘要功能),并将子数组写入输出流(不管是否开启了摘要功能)。即如果开启摘要功能(参见 on),则此方法将在与此流关联的消息摘要上调用 update,将子数组规范传递给该方法。然后,此方法将子数组字节写入输出流,在实际写入字节前一直为阻塞状态。

覆盖:
FilterOutputStream 中的 write
参数:
b - 要用于更新和写入输出流的包含子数组的数组。
off - 要更新和写入的第一个字节在 b 中的偏移量。
len - 要根据 b 更新和写入的数据的字节数,从偏移量 off 开始。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
MessageDigest.update(byte[], int, int)

on

public void on(boolean on)
开启或关闭摘要功能。默认为开启。开启时,调用 write 方法之一将导致消息摘要的更新。但是关闭时,不更新消息摘要。

参数:
on - 为 true 表示开启摘要功能,为 false 表示关闭。

toString

public String toString()
打印此摘要输出流及其关联的消息摘要对象的字符串表示形式。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。