private static int findNextSymbolBeginningOffsetFrom(long numberOfStartByte,
                                                       RandomAccessFile randomAccessFile,
                                                       Charset charset) throws IOException {
    if (charset.compareTo(StandardCharsets.UTF_8) == 0) {
      return findNextSymbolBeginningOffsetFrom_UTF8(numberOfStartByte, randomAccessFile);
    }
    else if (charset.compareTo(StandardCharsets.UTF_16) == 0
             || charset.compareTo(StandardCharsets.UTF_16BE) == 0
             || charset.compareTo(StandardCharsets.UTF_16LE) == 0) {
      return findNextSymbolBeginningOffsetFrom_UTF16(numberOfStartByte, randomAccessFile, charset);
    }
    else if (charset.compareTo(CharsetToolkit.UTF_32BE_CHARSET) == 0
             || charset.compareTo(CharsetToolkit.UTF_32LE_CHARSET) == 0) {
      return findNextSymbolBeginningOffsetFrom_UTF32(numberOfStartByte);
    }
    else {
      return 0;
    }
    //throw new NotImplementedException("not supported yet");
  }
private static int findNextSymbolBeginningOffsetFrom(long numberOfStartByte,
                                                       RandomAccessFile randomAccessFile,
                                                       Charset charset)