code: private int fillBuffer() throws IOException {
      int n = super.read(buffer, 0, BUF_SIZE);
      if (n >= 0) {
        real_pos += n;
        buf_end = n;
        buf_pos = 0;
      }
      return n;
    }
docs: Reads the next BUF_SIZE bytes into the internal buffer.