Module java.base
Package java.security

Class DigestInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.security.DigestInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class DigestInputStream extends FilterInputStream
A transparent stream that updates the associated message digest using the bits going through the stream.

To complete the message digest computation, call one of the digest methods on the associated message digest after your calls to one of this digest input stream's read methods.

It is possible to turn this stream on or off (see on). When it is on, a call to one of the read methods results in an update on the message digest. But when it is off, the message digest is not updated. The default is for the stream to be on.

Note that digest objects can compute only one digest (see MessageDigest), so that in order to compute intermediate digests, a caller should retain a handle onto the digest object, and clone it for each digest to be computed, leaving the original digest untouched.

Implementation Note:
This implementation only updates the message digest with data actually read from the input stream when it is turned on. This includes the various read methods, transferTo, readAllBytes, and readNBytes. Please note that data bypassed by the skip method are ignored. On the other hand, if the underlying stream supports the mark and reset methods, and the same data is read again after reset, then the message digest is updated again.
Since:
1.2
See Also: