code: public static void readFully(Reader input, char[] buffer, int offset, int length) throws IOException {
          int actual = read(input, buffer, offset, length);
          if (actual != length) {
              throw new EOFException("Length to read: " + length + " actual: " + actual);
          }
      }
docs: Read the requested number of characters or fail if there are not enough left.
  <p/>
  This allows for the possibility that {@link Reader#read(char[], int, int)} may
  not read as many characters as requested (most likely because of reaching EOF).
  
  @param input  where to read input from
  @param buffer destination
  @param offset inital offset into buffer
  @param length length to read, must be >= 0
  @throws IOException              if there is a problem reading the file
  @throws IllegalArgumentException if length is negative
  @throws EOFException             if the number of characters read was incorrect
  @since 2.2