类 FilePartUtils


  • public final class FilePartUtils
    extends java.lang.Object
    detail: 文件分片工具类
    作者:
    Ttt
         当下载大文件时, 如果网络不稳定或者程序异常退出, 会导致下载失败, 甚至重试多次仍无法完成下载
         可以使用断点续传下载:
         断点续传下载将需要下载的文件分成若干个分片分别下载, 所有分片都下载完成后, 将所有分片合并成完整的文件
         也可以用于断点续传上传 ( 分片续传 )
         

    RandomAccessFile 简介与使用
    另请参阅:

    可用 FileUtils#getFileMD5(File) 进行校验分片合并后与源文件 MD5 值是否一致
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static byte[] fileSplit​(java.io.File file, long start, long end)
      文件拆分
      static byte[] fileSplit​(java.io.File file, FilePartAssist assist, int partIndex)
      文件拆分
      static byte[] fileSplit​(java.io.File file, FilePartItem item)
      文件拆分
      static byte[] fileSplit​(java.lang.String filePath, long start, long end)
      文件拆分
      static byte[] fileSplit​(java.lang.String filePath, FilePartAssist assist, int partIndex)
      文件拆分
      static byte[] fileSplit​(java.lang.String filePath, FilePartItem item)
      文件拆分
      static boolean fileSplitDelete​(java.io.File file, FilePartAssist assist, java.lang.String destFolderPath, int partIndex)
      删除拆分文件
      static boolean fileSplitDelete​(java.io.File file, FilePartItem item, java.lang.String destFolderPath)
      删除拆分文件
      static boolean fileSplitDelete​(java.lang.String filePath, FilePartAssist assist, java.lang.String destFolderPath, int partIndex)
      删除拆分文件
      static boolean fileSplitDelete​(java.lang.String filePath, FilePartItem item, java.lang.String destFolderPath)
      删除拆分文件
      static boolean fileSplitDeletes​(java.io.File file, FilePartAssist assist, java.lang.String destFolderPath)
      删除拆分文件
      static boolean fileSplitDeletes​(java.io.File file, java.lang.String destFolderPath)
      删除拆分文件
      static boolean fileSplitDeletes​(java.lang.String filePath, FilePartAssist assist, java.lang.String destFolderPath)
      删除拆分文件
      static boolean fileSplitDeletes​(java.lang.String filePath, java.lang.String destFolderPath)
      删除拆分文件
      static boolean fileSplitMerge​(java.io.File file, FilePartAssist assist, java.lang.String destFolderPath, java.lang.String fileName)
      分片合并
      static boolean fileSplitMerge​(java.lang.String filePath, FilePartAssist assist, java.lang.String destFolderPath, java.lang.String fileName)
      分片合并
      static boolean fileSplitMergeFiles​(java.io.File file, java.util.List<java.io.File> files)
      分片合并
      static boolean fileSplitMergeFiles​(java.lang.String filePath, java.util.List<java.io.File> files)
      分片合并
      static boolean fileSplitMergePaths​(java.io.File file, java.util.List<java.lang.String> paths)
      分片合并
      static boolean fileSplitMergePaths​(java.lang.String filePath, java.util.List<java.lang.String> paths)
      分片合并
      static boolean fileSplitSave​(java.io.File file, long start, long end, java.lang.String destFolderPath, java.lang.String partName)
      文件拆分并存储
      static boolean fileSplitSave​(java.io.File file, FilePartAssist assist, java.lang.String destFolderPath, int partIndex)
      文件拆分并存储
      static boolean fileSplitSave​(java.io.File file, FilePartItem item, java.lang.String destFolderPath)
      文件拆分并存储
      static boolean fileSplitSave​(java.lang.String filePath, long start, long end, java.lang.String destFolderPath, java.lang.String partName)
      文件拆分并存储
      static boolean fileSplitSave​(java.lang.String filePath, FilePartAssist assist, java.lang.String destFolderPath, int partIndex)
      文件拆分并存储
      static boolean fileSplitSave​(java.lang.String filePath, FilePartItem item, java.lang.String destFolderPath)
      文件拆分并存储
      static boolean fileSplitSaves​(java.io.File file, FilePartAssist assist, java.lang.String destFolderPath)
      文件拆分并存储
      static boolean fileSplitSaves​(java.io.File file, java.lang.String destFolderPath)
      文件拆分并存储
      static boolean fileSplitSaves​(java.lang.String filePath, FilePartAssist assist, java.lang.String destFolderPath)
      文件拆分并存储
      static boolean fileSplitSaves​(java.lang.String filePath, java.lang.String destFolderPath)
      文件拆分并存储
      static FilePartAssist getFilePartAssist​(java.io.File file)
      获取文件分片辅助类
      static FilePartAssist getFilePartAssist​(java.io.File file, int partCount, long minLength)
      获取文件分片辅助类
      static FilePartAssist getFilePartAssist​(java.lang.String filePath)
      获取文件分片辅助类
      static FilePartAssist getFilePartAssist​(java.lang.String filePath, int partCount, long minLength)
      获取文件分片辅助类
      static java.lang.String getPartName​(FilePartAssist assist, int partIndex)
      获取分片文件名 ( 后缀索引拼接 )
      static java.lang.String getPartName​(FilePartItem item, java.lang.String fileName)
      获取分片文件名 ( 后缀索引拼接 )
      static java.lang.String getPartName​(java.lang.String fileName, int partIndex)
      获取分片文件名 ( 后缀索引拼接 )
      static boolean isFilePart​(java.io.File file)
      是否符合文件分片条件
      static boolean isFilePart​(java.io.File file, int partCount, long minLength)
      是否符合文件分片条件
      static boolean isFilePart​(java.lang.String filePath)
      是否符合文件分片条件
      static boolean isFilePart​(java.lang.String filePath, int partCount, long minLength)
      是否符合文件分片条件
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • PART_SUFFIX

        public static final java.lang.String PART_SUFFIX
        另请参阅:
        常量字段值
      • PART_COUNT

        public static final int PART_COUNT
        另请参阅:
        常量字段值
      • MIN_LENGTH

        public static final long MIN_LENGTH
        另请参阅:
        常量字段值
    • 方法详细资料

      • getPartName

        public static java.lang.String getPartName​(FilePartItem item,
                                                   java.lang.String fileName)
        获取分片文件名 ( 后缀索引拼接 )
        参数:
        item - FilePartItem
        fileName - 原始文件名
        返回:
        分片文件名
      • getPartName

        public static java.lang.String getPartName​(FilePartAssist assist,
                                                   int partIndex)
        获取分片文件名 ( 后缀索引拼接 )
        参数:
        assist - FilePartAssist
        partIndex - 分片索引
        返回:
        分片文件名
      • getPartName

        public static java.lang.String getPartName​(java.lang.String fileName,
                                                   int partIndex)
        获取分片文件名 ( 后缀索引拼接 )
        参数:
        fileName - 原始文件名
        partIndex - 分片索引
        返回:
        分片文件名
      • getFilePartAssist

        public static FilePartAssist getFilePartAssist​(java.lang.String filePath)
        获取文件分片辅助类
        参数:
        filePath - 文件路径
        返回:
        FilePartAssist
      • getFilePartAssist

        public static FilePartAssist getFilePartAssist​(java.lang.String filePath,
                                                       int partCount,
                                                       long minLength)
        获取文件分片辅助类
        参数:
        filePath - 文件路径
        partCount - 分片总数
        minLength - 分片片段允许最小值 byte
        返回:
        FilePartAssist
      • getFilePartAssist

        public static FilePartAssist getFilePartAssist​(java.io.File file)
        获取文件分片辅助类
        参数:
        file - 文件
        返回:
        FilePartAssist
      • getFilePartAssist

        public static FilePartAssist getFilePartAssist​(java.io.File file,
                                                       int partCount,
                                                       long minLength)
        获取文件分片辅助类
        参数:
        file - 文件
        partCount - 分片总数
        minLength - 分片片段允许最小值 byte
        返回:
        FilePartAssist
      • isFilePart

        public static boolean isFilePart​(java.lang.String filePath)
        是否符合文件分片条件
        参数:
        filePath - 文件路径
        返回:
        true yes, false no
      • isFilePart

        public static boolean isFilePart​(java.lang.String filePath,
                                         int partCount,
                                         long minLength)
        是否符合文件分片条件
        参数:
        filePath - 文件路径
        partCount - 分片总数
        minLength - 分片片段允许最小值 byte
        返回:
        true yes, false no
      • isFilePart

        public static boolean isFilePart​(java.io.File file)
        是否符合文件分片条件
        参数:
        file - 文件
        返回:
        true yes, false no
      • isFilePart

        public static boolean isFilePart​(java.io.File file,
                                         int partCount,
                                         long minLength)
        是否符合文件分片条件
        参数:
        file - 文件
        partCount - 分片总数
        minLength - 分片片段允许最小值 byte
        返回:
        true yes, false no
      • fileSplit

        public static byte[] fileSplit​(java.lang.String filePath,
                                       long start,
                                       long end)
        文件拆分
        参数:
        filePath - 文件路径
        start - 分片字节开始索引
        end - 分片字节结束索引
        返回:
        指定位置数据
      • fileSplit

        public static byte[] fileSplit​(java.io.File file,
                                       long start,
                                       long end)
        文件拆分
             慎用, 防止内存溢出
         
        参数:
        file - 文件
        start - 分片字节开始索引
        end - 分片字节结束索引
        返回:
        指定位置数据
      • fileSplit

        public static byte[] fileSplit​(java.lang.String filePath,
                                       FilePartItem item)
        文件拆分
        参数:
        filePath - 文件路径
        item - FilePartItem
        返回:
        指定位置数据
      • fileSplit

        public static byte[] fileSplit​(java.io.File file,
                                       FilePartItem item)
        文件拆分
        参数:
        file - 文件
        item - FilePartItem
        返回:
        指定位置数据
      • fileSplit

        public static byte[] fileSplit​(java.lang.String filePath,
                                       FilePartAssist assist,
                                       int partIndex)
        文件拆分
        参数:
        filePath - 文件路径
        assist - FilePartAssist
        partIndex - 分片索引
        返回:
        指定位置数据
      • fileSplit

        public static byte[] fileSplit​(java.io.File file,
                                       FilePartAssist assist,
                                       int partIndex)
        文件拆分
        参数:
        file - 文件
        assist - FilePartAssist
        partIndex - 分片索引
        返回:
        指定位置数据
      • fileSplitSave

        public static boolean fileSplitSave​(java.lang.String filePath,
                                            long start,
                                            long end,
                                            java.lang.String destFolderPath,
                                            java.lang.String partName)
        文件拆分并存储
        参数:
        filePath - 文件路径
        start - 分片字节开始索引
        end - 分片字节结束索引
        destFolderPath - 存储目标文件夹地址
        partName - 分片文件名
        返回:
        true success, false fail
      • fileSplitSave

        public static boolean fileSplitSave​(java.io.File file,
                                            long start,
                                            long end,
                                            java.lang.String destFolderPath,
                                            java.lang.String partName)
        文件拆分并存储
        参数:
        file - 文件
        start - 分片字节开始索引
        end - 分片字节结束索引
        destFolderPath - 存储目标文件夹地址
        partName - 分片文件名
        返回:
        true success, false fail
      • fileSplitSave

        public static boolean fileSplitSave​(java.lang.String filePath,
                                            FilePartItem item,
                                            java.lang.String destFolderPath)
        文件拆分并存储
        参数:
        filePath - 文件路径
        item - FilePartItem
        destFolderPath - 存储目标文件夹地址
        返回:
        true success, false fail
      • fileSplitSave

        public static boolean fileSplitSave​(java.io.File file,
                                            FilePartItem item,
                                            java.lang.String destFolderPath)
        文件拆分并存储
        参数:
        file - 文件
        item - FilePartItem
        destFolderPath - 存储目标文件夹地址
        返回:
        true success, false fail
      • fileSplitSave

        public static boolean fileSplitSave​(java.lang.String filePath,
                                            FilePartAssist assist,
                                            java.lang.String destFolderPath,
                                            int partIndex)
        文件拆分并存储
        参数:
        filePath - 文件路径
        assist - FilePartAssist
        destFolderPath - 存储目标文件夹地址
        partIndex - 分片索引
        返回:
        true success, false fail
      • fileSplitSave

        public static boolean fileSplitSave​(java.io.File file,
                                            FilePartAssist assist,
                                            java.lang.String destFolderPath,
                                            int partIndex)
        文件拆分并存储
        参数:
        file - 文件
        assist - FilePartAssist
        destFolderPath - 存储目标文件夹地址
        partIndex - 分片索引
        返回:
        true success, false fail
      • fileSplitSaves

        public static boolean fileSplitSaves​(java.lang.String filePath,
                                             java.lang.String destFolderPath)
        文件拆分并存储
        参数:
        filePath - 文件路径
        destFolderPath - 存储目标文件夹地址
        返回:
        true success, false fail
      • fileSplitSaves

        public static boolean fileSplitSaves​(java.io.File file,
                                             java.lang.String destFolderPath)
        文件拆分并存储
        参数:
        file - 文件
        destFolderPath - 存储目标文件夹地址
        返回:
        true success, false fail
      • fileSplitSaves

        public static boolean fileSplitSaves​(java.lang.String filePath,
                                             FilePartAssist assist,
                                             java.lang.String destFolderPath)
        文件拆分并存储
        参数:
        filePath - 文件路径
        assist - FilePartAssist
        destFolderPath - 存储目标文件夹地址
        返回:
        true success, false fail
      • fileSplitSaves

        public static boolean fileSplitSaves​(java.io.File file,
                                             FilePartAssist assist,
                                             java.lang.String destFolderPath)
        文件拆分并存储
        参数:
        file - 文件
        assist - FilePartAssist
        destFolderPath - 存储目标文件夹地址
        返回:
        true success, false fail
      • fileSplitDelete

        public static boolean fileSplitDelete​(java.lang.String filePath,
                                              FilePartItem item,
                                              java.lang.String destFolderPath)
        删除拆分文件
        参数:
        filePath - 文件路径
        item - FilePartItem
        destFolderPath - 待删除目标文件夹地址
        返回:
        true success, false fail
      • fileSplitDelete

        public static boolean fileSplitDelete​(java.io.File file,
                                              FilePartItem item,
                                              java.lang.String destFolderPath)
        删除拆分文件
        参数:
        file - 文件
        item - FilePartItem
        destFolderPath - 待删除目标文件夹地址
        返回:
        true success, false fail
      • fileSplitDelete

        public static boolean fileSplitDelete​(java.lang.String filePath,
                                              FilePartAssist assist,
                                              java.lang.String destFolderPath,
                                              int partIndex)
        删除拆分文件
        参数:
        filePath - 文件路径
        assist - FilePartAssist
        destFolderPath - 待删除目标文件夹地址
        partIndex - 分片索引
        返回:
        true success, false fail
      • fileSplitDelete

        public static boolean fileSplitDelete​(java.io.File file,
                                              FilePartAssist assist,
                                              java.lang.String destFolderPath,
                                              int partIndex)
        删除拆分文件
        参数:
        file - 文件
        assist - FilePartAssist
        destFolderPath - 待删除目标文件夹地址
        partIndex - 分片索引
        返回:
        true success, false fail
      • fileSplitDeletes

        public static boolean fileSplitDeletes​(java.lang.String filePath,
                                               java.lang.String destFolderPath)
        删除拆分文件
        参数:
        filePath - 文件路径
        destFolderPath - 待删除目标文件夹地址
        返回:
        true success, false fail
      • fileSplitDeletes

        public static boolean fileSplitDeletes​(java.io.File file,
                                               java.lang.String destFolderPath)
        删除拆分文件
        参数:
        file - 文件
        destFolderPath - 待删除目标文件夹地址
        返回:
        true success, false fail
      • fileSplitDeletes

        public static boolean fileSplitDeletes​(java.lang.String filePath,
                                               FilePartAssist assist,
                                               java.lang.String destFolderPath)
        删除拆分文件
        参数:
        filePath - 文件路径
        assist - FilePartAssist
        destFolderPath - 待删除目标文件夹地址
        返回:
        true success, false fail
      • fileSplitDeletes

        public static boolean fileSplitDeletes​(java.io.File file,
                                               FilePartAssist assist,
                                               java.lang.String destFolderPath)
        删除拆分文件
        参数:
        file - 文件
        assist - FilePartAssist
        destFolderPath - 待删除目标文件夹地址
        返回:
        true success, false fail
      • fileSplitMergePaths

        public static boolean fileSplitMergePaths​(java.lang.String filePath,
                                                  java.util.List<java.lang.String> paths)
        分片合并
        参数:
        filePath - 文件路径
        paths - 待合并文件 ( 按顺序 )
        返回:
        true success, false fail
      • fileSplitMergePaths

        public static boolean fileSplitMergePaths​(java.io.File file,
                                                  java.util.List<java.lang.String> paths)
        分片合并
        参数:
        file - 文件
        paths - 待合并文件 ( 按顺序 )
        返回:
        true success, false fail
      • fileSplitMergeFiles

        public static boolean fileSplitMergeFiles​(java.lang.String filePath,
                                                  java.util.List<java.io.File> files)
        分片合并
        参数:
        filePath - 文件路径
        files - 待合并文件 ( 按顺序 )
        返回:
        true success, false fail
      • fileSplitMergeFiles

        public static boolean fileSplitMergeFiles​(java.io.File file,
                                                  java.util.List<java.io.File> files)
        分片合并
        参数:
        file - 文件
        files - 待合并文件 ( 按顺序 )
        返回:
        true success, false fail
      • fileSplitMerge

        public static boolean fileSplitMerge​(java.lang.String filePath,
                                             FilePartAssist assist,
                                             java.lang.String destFolderPath,
                                             java.lang.String fileName)
        分片合并
        参数:
        filePath - 文件路径
        assist - FilePartAssist
        destFolderPath - 分片所在文件夹地址
        fileName - 原文件名
        返回:
        true success, false fail
      • fileSplitMerge

        public static boolean fileSplitMerge​(java.io.File file,
                                             FilePartAssist assist,
                                             java.lang.String destFolderPath,
                                             java.lang.String fileName)
        分片合并
        参数:
        file - 文件
        assist - FilePartAssist
        destFolderPath - 分片所在文件夹地址
        fileName - 原文件名
        返回:
        true success, false fail