java.security
Class DigestOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by java.security.DigestOutputStream
All Implemented Interfaces:
Closeable, Flushable

public class DigestOutputStream
extends FilterOutputStream

DigestOutputStream is a class that ties an OutputStream with a MessageDigest. The Message Digest is used by the class to update it self as bytes are written to the OutputStream. The updating to the digest depends on the on flag which is set to true by default that tells the class to update the data in the message digest.


Field Summary
protected  MessageDigest digest
          The message digest for the DigestOutputStream
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
DigestOutputStream(OutputStream stream, MessageDigest digest)
          Constructs a new DigestOutputStream.
 
Method Summary
 MessageDigest getMessageDigest()
          Returns the MessageDigest associated with this DigestOutputStream
 void on(boolean on)
          Sets the flag specifying if this DigestOutputStream updates the digest in the write() methods.
 void setMessageDigest(MessageDigest digest)
          Sets the current MessageDigest to current parameter
 String toString()
          Converts the output stream and underlying message digest to a string.
 void write(byte[] b, int off, int len)
          Updates the hash if the on flag is true and then writes the bytes to the underlying output stream.
 void write(int b)
          Updates the hash if the on flag is true and then writes a byte to the underlying output stream.
 
Methods inherited from class java.io.FilterOutputStream
close, flush, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

digest

protected MessageDigest digest
The message digest for the DigestOutputStream

Constructor Detail

DigestOutputStream

public DigestOutputStream(OutputStream stream,
                          MessageDigest digest)
Constructs a new DigestOutputStream. It associates a MessageDigest with the stream to compute the stream as data is written.

Parameters:
stream - An OutputStream to associate this stream with
digest - A MessageDigest to hash the stream with
Method Detail

getMessageDigest

public MessageDigest getMessageDigest()
Returns the MessageDigest associated with this DigestOutputStream

Returns:
The MessageDigest used to hash this stream

setMessageDigest

public void setMessageDigest(MessageDigest digest)
Sets the current MessageDigest to current parameter

Parameters:
digest - A MessageDigest to associate with this stream

write

public void write(int b)
           throws IOException
Updates the hash if the on flag is true and then writes a byte to the underlying output stream.

Overrides:
write in class FilterOutputStream
Parameters:
b - A byte to write to the output stream
Throws:
IOException - if the underlying output stream cannot write the byte, this is thrown.

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Updates the hash if the on flag is true and then writes the bytes to the underlying output stream.

Overrides:
write in class FilterOutputStream
Parameters:
b - Bytes to write to the output stream
off - Offset to start to start at in array
len - Length of data to write
Throws:
IOException - if the underlying output stream cannot write the bytes, this is thrown.

on

public void on(boolean on)
Sets the flag specifying if this DigestOutputStream updates the digest in the write() methods. The default is on;

Parameters:
on - True means it digests stream, false means it does not

toString

public String toString()
Converts the output stream and underlying message digest to a string.

Overrides:
toString in class Object
Returns:
A string representing the output stream and message digest.
See Also:
Object.getClass(), Object.hashCode(), Class.getName(), Integer.toHexString(int)