Package com.google.common.hash
Class HashingInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- com.google.common.hash.HashingInputStream
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
@Beta public final class HashingInputStream extends FilterInputStream
AnInputStream
that maintains a hash of the data read from it.- Since:
- 16.0
- Author:
- Qian Huang
-
-
Field Summary
-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Constructor Description HashingInputStream(HashFunction hashFunction, InputStream in)
Creates an input stream that hashes using the givenHashFunction
and delegates all data read from it to the underlyingInputStream
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HashCode
hash()
Returns theHashCode
based on the data read from this stream.void
mark(int readlimit)
mark() is not supported for HashingInputStreamboolean
markSupported()
mark() is not supported for HashingInputStreamint
read()
Reads the next byte of data from the underlying input stream and updates the hasher with the byte read.int
read(byte[] bytes, int off, int len)
Reads the specified bytes of data from the underlying input stream and updates the hasher with the bytes read.void
reset()
reset() is not supported for HashingInputStream.-
Methods inherited from class java.io.FilterInputStream
available, close, read, skip
-
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Constructor Detail
-
HashingInputStream
public HashingInputStream(HashFunction hashFunction, InputStream in)
Creates an input stream that hashes using the givenHashFunction
and delegates all data read from it to the underlyingInputStream
.The
InputStream
should not be read from before or after the hand-off.
-
-
Method Detail
-
read
@CanIgnoreReturnValue public int read() throws IOException
Reads the next byte of data from the underlying input stream and updates the hasher with the byte read.- Overrides:
read
in classFilterInputStream
- Returns:
- the next byte of data, or
-1
if the end of the stream is reached. - Throws:
IOException
- if an I/O error occurs.- See Also:
FilterInputStream.in
-
read
@CanIgnoreReturnValue public int read(byte[] bytes, int off, int len) throws IOException
Reads the specified bytes of data from the underlying input stream and updates the hasher with the bytes read.- Overrides:
read
in classFilterInputStream
- Parameters:
bytes
- the buffer into which the data is read.off
- the start offset in the destination arrayb
len
- the maximum number of bytes read.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
IOException
- if an I/O error occurs.- See Also:
FilterInputStream.in
-
markSupported
public boolean markSupported()
mark() is not supported for HashingInputStream- Overrides:
markSupported
in classFilterInputStream
- Returns:
false
always- See Also:
FilterInputStream.in
,InputStream.mark(int)
,InputStream.reset()
-
mark
public void mark(int readlimit)
mark() is not supported for HashingInputStream- Overrides:
mark
in classFilterInputStream
- Parameters:
readlimit
- the maximum limit of bytes that can be read before the mark position becomes invalid.- See Also:
FilterInputStream.in
,FilterInputStream.reset()
-
reset
public void reset() throws IOException
reset() is not supported for HashingInputStream.- Overrides:
reset
in classFilterInputStream
- Throws:
IOException
- this operation is not supported- See Also:
FilterInputStream.in
,FilterInputStream.mark(int)
-
-