code: public static void splitFile(File file, long[] splitPoints, String storageFolder) throws IOException {
          splitPoints = ArrayUtils.concatArrays(new long[]{0}, splitPoints, new long[]{file.length()});
          String[] fileName = file.getName().split("\\.", 2);
          storageFolder += ValueConsts.SEPARATOR;
          logger.info("start to split file '" + file.getAbsolutePath() + "'");
          for (int i = 0; i < splitPoints.length - 1; i++) {
              long start = splitPoints[i], end = splitPoints[i + 1];
              long length = end - start;
              String filePath = storageFolder + fileName[0] + "_" + (i + 1) + "." + fileName[1];
              createNewFile(filePath);
              while (length > Integer.MAX_VALUE) {
                  saveFile(filePath, readFile(file, start, Integer.MAX_VALUE), true);
                  start += Integer.MAX_VALUE;
                  length -= Integer.MAX_VALUE;
              }
              if (length > 0) {
                  saveFile(filePath, readFile(file, start, (int) length), true);
              }
          }
      }
docs: 拆分文件
  
  @param file 文件
  @param splitPoints 拆分点数组（函数将根据拆分点来分割文件）
  @param storageFolder 保存路径
  
  @throws IOException 异常