Module java.base
Package java.security

Class DigestOutputStream

所有已实现的接口:
Closeable, Flushable, AutoCloseable

public class DigestOutputStream extends FilterOutputStream
一个透明流,使用通过流传递的位更新关联的消息摘要。

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

可以打开或关闭此流(请参见on)。当打开时,调用write方法之一会导致消息摘要更新。但当关闭时,消息摘要不会被更新。默认情况下,流是打开的。

自版本:
1.2
参见:
  • Field Details

    • digest

      protected MessageDigest digest
      与此流关联的消息摘要。
  • Constructor Details

    • DigestOutputStream

      public DigestOutputStream(OutputStream stream, MessageDigest digest)
      使用指定的输出流和消息摘要创建一个摘要输出流。
      参数:
      stream - 输出流。
      digest - 要与此流关联的消息摘要。
  • Method Details

    • getMessageDigest

      public MessageDigest getMessageDigest()
      返回与此流关联的消息摘要。
      返回:
      与此流关联的消息摘要。
      参见:
    • setMessageDigest

      public void setMessageDigest(MessageDigest digest)
      将指定的消息摘要与此流关联。
      参数:
      digest - 要与此流关联的消息摘要。
      参见:
    • write

      public void write(int b) throws IOException
      使用指定的字节更新消息摘要(如果摘要功能打开),并无论如何将字节写入输出流。也就是说,如果摘要功能打开(请参见on),此方法会调用与此流关联的消息摘要的update方法,传递字节b。然后,此方法将字节写入输出流,阻塞直到字节实际写入为止。
      覆盖:
      write 在类 FilterOutputStream
      参数:
      b - 用于更新和写入输出流的字节。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • 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错误。
      参见:
    • on

      public void on(boolean on)
      打开或关闭摘要功能。默认为打开。当打开时,调用write方法之一会导致消息摘要更新。但当关闭时,消息摘要不会被更新。
      参数:
      on - true表示打开摘要功能,false表示关闭。
    • toString

      public String toString()
      打印此摘要输出流及其关联的消息摘要对象的字符串表示形式。
      覆盖:
      toString 在类 Object
      返回:
      对象的字符串表示形式。