code: static long getLong(final byte[] arr, final long off) throws IOException {
          final int ioff = (int) off;
          if (ioff < 0 || ioff > arr.length - 8) {
              throw new IndexOutOfBoundsException();
          }
          return ((arr[ioff + 7] & 0xffL) << 56) //
                  | ((arr[ioff + 6] & 0xffL) << 48) //
                  | ((arr[ioff + 5] & 0xffL) << 40) //
                  | ((arr[ioff + 4] & 0xffL) << 32) //
                  | ((arr[ioff + 3] & 0xffL) << 24) //
                  | ((arr[ioff + 2] & 0xffL) << 16) //
                  | ((arr[ioff + 1] & 0xffL) << 8) //
                  | (arr[ioff] & 0xffL);
      }
docs: Get a long from a byte array.
  
  @param arr
  the byte array
  @param off
  the offset to start reading from
  @return the long
  @throws IOException
  if an I/O exception occurs.