@Override public int read() throws IOException {
  int ch=super.read();
  if (ch != -1) {
    branch.write(ch);
  }
  return ch;
}

@ Override public int read ( ) throws IOException { int ch = super . read ( ) ; if ( ch != - 1 ) { branch . write ( ch ) ; } return ch ; }
reads a single byte from the proxied input stream and writes it to the associated output stream .
