code: protected final boolean readBlock(final long block, final byte[] buffer) throws IOException {
          final int bytesRead = readData(block * this.blockSize, buffer, 0, this.blockSize);
  
          if (bytesRead <= 0) {
              return false;
          }
  
          if (this.blockSize != bytesRead) {
              throw new IOException("Could not deserialize a complete block");
          }
  
          return true;
      }
docs: Read the data for the specified block into the specified buffer.
  
  @return if the block was actually read
  
  @throws IOException if the number of bytes read into the buffer was less than the expected number (i.e. the block
  size)