code: protected synchronized int read() throws IOException {
  		try {
  			block();
  		} catch (InterruptedException ex) {
  			throw new InterruptedIOException(
  					"The blocking operation was interrupted");
  		}
  
  		if (closed && available() <= 0) {
  			return -1;
  		}
  
  		return buf[readpos++];
  
  	}
docs: Read a byte from the buffer
  
  @return
  
  @throws IOException
  @throws InterruptedIOException