Package java.util.zip

Class CheckedInputStream

All Implemented Interfaces:
Closeable, AutoCloseable

public class CheckedInputStream
extends FilterInputStream
The CheckedInputStream class is used to maintain a checksum at the same time as the data, on which the checksum is computed, is read from a stream. The purpose of this checksum is to establish data integrity, comparing the computed checksum against a published checksum value.
  • Constructor Details

    • CheckedInputStream

      public CheckedInputStream​(InputStream is, Checksum csum)
      Constructs a new CheckedInputStream on InputStream is. The checksum will be calculated using the algorithm implemented by csum.

      Warning: passing a null source creates an invalid CheckedInputStream. All operations on such a stream will fail.

      Parameters:
      is - the input stream to calculate checksum from.
      csum - an entity implementing the checksum algorithm.
  • Method Details

    • read

      public int read() throws IOException
      Reads one byte of data from the underlying input stream and updates the checksum with the byte data.
      Overrides:
      read in class FilterInputStream
      Returns:
      -1 at the end of the stream, a single byte value otherwise.
      Throws:
      IOException - if an IOException occurs.
    • read

      public int read​(byte[] buffer, int byteOffset, int byteCount) throws IOException
      Reads up to byteCount bytes of data from the underlying input stream, storing it into buffer, starting at offset byteOffset. The checksum is updated with the bytes read. Returns the number of bytes actually read or -1 if arrived at the end of the filtered stream while reading the data.
      Overrides:
      read in class FilterInputStream
      Throws:
      IOException - if this stream is closed or some I/O error occurs.
    • getChecksum

      public Checksum getChecksum()
      Returns the checksum calculated on the stream read so far.
    • skip

      public long skip​(long byteCount) throws IOException
      Skip up to byteCount bytes of data on the underlying input stream. Any skipped bytes are added to the running checksum value.
      Overrides:
      skip in class FilterInputStream
      Parameters:
      byteCount - the number of bytes to skip.
      Returns:
      the number of bytes skipped.
      Throws:
      IOException - if this stream is closed or another I/O error occurs.
      See Also:
      FilterInputStream.mark(int), FilterInputStream.reset()