Package com.google.common.hash
Class HashingOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- com.google.common.hash.HashingOutputStream
-
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
@Beta public final class HashingOutputStream extends FilterOutputStream
AnOutputStream
that maintains a hash of the data written to it.- Since:
- 16.0
- Author:
- Nick Piepmeier
-
-
Field Summary
-
Fields inherited from class java.io.FilterOutputStream
out
-
-
Constructor Summary
Constructors Constructor Description HashingOutputStream(HashFunction hashFunction, OutputStream out)
Creates an output stream that hashes using the givenHashFunction
, and forwards all data written to it to the underlyingOutputStream
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this output stream and releases any system resources associated with the stream.HashCode
hash()
Returns theHashCode
based on the data written to this stream.void
write(byte[] bytes, int off, int len)
Writeslen
bytes from the specifiedbyte
array starting at offsetoff
to this output stream.void
write(int b)
Writes the specifiedbyte
to this output stream.-
Methods inherited from class java.io.FilterOutputStream
flush, write
-
Methods inherited from class java.io.OutputStream
nullOutputStream
-
-
-
-
Constructor Detail
-
HashingOutputStream
public HashingOutputStream(HashFunction hashFunction, OutputStream out)
Creates an output stream that hashes using the givenHashFunction
, and forwards all data written to it to the underlyingOutputStream
.The
OutputStream
should not be written to before or after the hand-off.
-
-
Method Detail
-
write
public void write(int b) throws IOException
Description copied from class:java.io.FilterOutputStream
Writes the specifiedbyte
to this output stream.The
write
method ofFilterOutputStream
calls thewrite
method of its underlying output stream, that is, it performsout.write(b)
.Implements the abstract
write
method ofOutputStream
.- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- thebyte
.- Throws:
IOException
- if an I/O error occurs.
-
write
public void write(byte[] bytes, int off, int len) throws IOException
Description copied from class:java.io.FilterOutputStream
Writeslen
bytes from the specifiedbyte
array starting at offsetoff
to this output stream.The
write
method ofFilterOutputStream
calls thewrite
method of one argument on eachbyte
to output.Note that this method does not call the
write
method of its underlying output stream with the same arguments. Subclasses ofFilterOutputStream
should provide a more efficient implementation of this method.- Overrides:
write
in classFilterOutputStream
- Parameters:
bytes
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.write(int)
-
hash
public HashCode hash()
Returns theHashCode
based on the data written to this stream. The result is unspecified if this method is called more than once on the same instance.
-
close
public void close() throws IOException
Description copied from class:java.io.FilterOutputStream
Closes this output stream and releases any system resources associated with the stream.When not already closed, the
close
method ofFilterOutputStream
calls itsflush
method, and then calls theclose
method of its underlying output stream.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classFilterOutputStream
- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.flush()
,FilterOutputStream.out
-
-