001 package com.hs.mail.io; 002 003 import java.io.IOException; 004 import java.io.InputStream; 005 006 public class CountingInputStream extends InputStream { 007 008 private InputStream in; 009 010 private int lineCount; 011 012 private int octetCount; 013 014 public CountingInputStream(InputStream in) { 015 super(); 016 this.in = in; 017 } 018 019 @Override 020 public int read() throws IOException { 021 int next = in.read(); 022 if (next > 0) { 023 octetCount++; 024 if (next == '\r') { 025 lineCount++; 026 } 027 } 028 return next; 029 } 030 031 public int getLineCount() { 032 return lineCount; 033 } 034 035 public int getOctetCount() { 036 return octetCount; 037 } 038 039 public void readAll() throws IOException { 040 while (read() > 0) 041 ; 042 } 043 044 }