Java的简单线程复制文件工具类FileUtil2.0(2)

/**
    * 复制文件到指定路径(可创建路径)
    *
    * @param f1
    *            文件
    * @param f2
    *            文件夹
    * @param override
    *            是否覆盖
    * @param append
    *            是否追加
    * @return
    */
    public static void copyFileToPath(File f1, File f2, boolean override, boolean append) {
        copyFile(f1, newFile(f2.getAbsolutePath(), f1.getName()), override, append);
    }

/**
    * 根据流来复制。
    *
    * @param is
    *            输入流
    * @param os
    *            输出流
    */
    public static void copyFile(InputStream is, OutputStream os) {
        FileUtilHelp.createCopy(is, os);
    }

/**
    * 复制文件到指定路径(可创建路径)
    *
    * @param fileName
    *            文件名
    * @param path
    *            路径
    * @param override
    *            覆盖
    * @param append
    *            是否追加
    */
    public static void copyFileToPath(String fileName, String path, boolean override, boolean append) {
        copyFileToPath(newFile(fileName), newFile(path), override, append);
    }

/**
    * 复制指定路径下所有文件到指定路径(建议大文件不要太多)
    *
    * @param f1
    *            文件对象
    * @param f2
    *            文件对象
    * @param override
    *            是否覆盖
    * @param append
    *            是否追加
    * @param time
    *            复制每个文件的间隔
    */
    public static void copyPathToPath(File f1, File f2, boolean override, boolean append, long time) {
        if (exists(f1) && isDirectory(f1)) {
            File[] farr = f1.listFiles();
            for (File f : farr) {
                try {
                    Thread.sleep(time);// 一次性复制超过5个,线程支持不住,慢点也不影响性能。
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                copyFileToPath(f, f2, override, append);
            }
        }
    }

/**
    * 复制指定路径下所有文件到指定路径(大文件需要更多时间。)
    *
    * @param path1
    *            路径
    * @param path2
    *            路径
    * @param override
    *            是否覆盖
    * @param append
    *            是否追加
    * @param time
    *            复制每个文件的间隔
    */
    public static void copyPathToPath(String path1, String path2, boolean override, boolean append, long time) {
        copyPathToPath(newFile(path1), newFile(parent(newFile(path1)), path2), override, append, time);
    }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ecad5b5f204d7e262e308fcc6821e282.html