FileDocCategorySizeDatePackage
CheckedInputStream.javaAPI DocJava SE 5 API2473Fri Aug 26 14:57:28 BST 2005java.util.zip

CheckedInputStream

public class CheckedInputStream extends FilterInputStream
An input stream that also maintains a checksum of the data being read. The checksum can then be used to verify the integrity of the input data.
see
Checksum
version
1.19, 12/19/03
author
David Connelly

Fields Summary
private Checksum
cksum
Constructors Summary
public CheckedInputStream(InputStream in, Checksum cksum)
Creates an input stream using the specified Checksum.

param
in the input stream
param
cksum the Checksum

	super(in);
	this.cksum = cksum;
    
Methods Summary
public java.util.zip.ChecksumgetChecksum()
Returns the Checksum for this input stream.

return
the Checksum value

	return cksum;
    
public intread()
Reads a byte. Will block if no input is available.

return
the byte read, or -1 if the end of the stream is reached.
exception
IOException if an I/O error has occurred

	int b = in.read();
	if (b != -1) {
	    cksum.update(b);
	}
	return b;
    
public intread(byte[] buf, int off, int len)
Reads into an array of bytes. Will block until some input is available.

param
buf the buffer into which the data is read
param
off the start offset of the data
param
len the maximum number of bytes read
return
the actual number of bytes read, or -1 if the end of the stream is reached.
exception
IOException if an I/O error has occurred

	len = in.read(buf, off, len);
	if (len != -1) {
	    cksum.update(buf, off, len);
	}
	return len;
    
public longskip(long n)
Skips specified number of bytes of input.

param
n the number of bytes to skip
return
the actual number of bytes skipped
exception
IOException if an I/O error has occurred

	byte[] buf = new byte[512];
	long total = 0;
	while (total < n) {
	    long len = n - total;
	    len = read(buf, 0, len < buf.length ? (int)len : buf.length);
	    if (len == -1) {
		return total;
	    }
	    total += len;
	}
	return total;