Mega Code Archive

 
Categories / Java / File Input Output
 

Count the number of bytes read through the stream

// CountInputStream.java // $Id: CountInputStream.java,v 1.1 2001/04/11 19:03:06 ylafon Exp $ // (c) COPYRIGHT MIT, INRIA and Keio, 2001. // Please first read the full copyright statement in file COPYRIGHT.html import java.io.IOException; import java.io.InputStream; /**  * count the number of bytes read through the stream  */ public class CountInputStream extends InputStream {   long count = 0;   long marked = -1;   InputStream is;   public int available() throws IOException {     return is.available();   }   public boolean markSupported() {     return is.markSupported();   }   public int read() throws IOException {     int r = is.read();     if (r > 0) {       count++;     }     return r;   }   public int read(byte[] b, int off, int len) throws IOException {     int r = is.read(b, off, len);     if (r > 0) {       count += r;     }     return r;   }   public long skip(long skipped) throws IOException {     long l = is.skip(skipped);     if (l > 0) {       count += l;     }     return l;   }   public void mark(int readlimit) {     is.mark(readlimit);     marked = count;   }   public void reset() throws IOException {     is.reset();     count = marked;   }   public void close() throws IOException {     is.close();   }   /**    * get the actual number of bytes read    *     * @return a long, the number of bytes read    */   public long getBytesRead() {     return count;   }   public CountInputStream(InputStream is) {     this.is = is;   } }