Hi, ZipFile.Source.readFullyAt caps its calls to RandomAccessFile.readFully to a maximum of 8192 bytes per call, like this:
int N = len; > while (N > 0) { > int n = Math.min(BUF_SIZE, N); > zfile.readFully(buf, off, n); > off += n; > N -= n; > } I'm observing a ~10% speedup of the ZipFileOpen micro when I replace the above with simply: zfile.seek(pos); > zfile.readFully(buf, off, len); Does anyone know why readFullyAt is implemented this way? Is it trying to limit blocking time somehow? Is there some hidden buffering deeper down I'm not seeing? If this is safe to remove, I'm happy to submit a PR. But code like this is usually there for a reason..? Cheers, Eiirk.