code: private int fillBuffer() throws IOException {
      int cnt = 0;
      int rem = this.buff_.length;
      while (rem > 0) {
        int n = super.read(this.buff_, cnt, rem);
        if (n < 0) {
          break;
        }
        cnt += n;
        rem -= n;
      }
      if ((cnt < 0) && (this.hitEOF_ = (cnt < this.buff_.length))) {
        // make sure buffer that wasn't read is initialized with -1
        Arrays.fill(this.buff_, cnt, this.buff_.length, (byte) 0xff);
      }
      this.diskPos_ += cnt;
      return cnt;
    }
docs: /*
  Read at most "this.buff.length" bytes into "this.buff", returning the
  number of bytes read. If the return result is less than
  "this.buff.length", then EOF was read.