code: public int read() throws IOException {
  		if (leftover != null && leftover.remaining() > 0) {
  			int b = leftover.get();
  			if (leftover.remaining() == 0) {
  				leftover = null;
  			}
  			return b;
  		}
  		return input.read();
  	}
docs: Read a single byte, except it will try to use the leftover bytes from the
  previous read first.
  
  @return The single byte read
  @throws IOException If an error occurs