public abstract int read() throws IOExceptionReads 
  the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown. 
A subclass must provide an implementation of this method.Returns:
the next byte of data, or -1 if the end of the stream is reached.