@Override public int read() throws IOException {
  if (buf == null) {
    throw new IOException();
  }
  if (pos < buf.length) {
    return (buf[pos++] & 0xFF);
  }
  return in.read();
}

@ Override public int read ( ) throws IOException { if ( buf == null ) { throw new IOException ( ) ; } if ( pos < buf . length ) { return ( buf [ pos ++ ] & 0xFF ) ; } return in . read ( ) ; }
reads a single byte from this stream and returns it as an integer in the range from 0 to 255 . if the pushback buffer does not contain any available bytes then a byte from the source input stream is returned . blocks until one byte has been read , the end of the source stream is detected or an exception is thrown .
