设为首页 加入收藏

TOP

Java的简单线程复制文件工具类FileUtil2.0(一)
2017-12-29 06:06:39 】 浏览:605
Tags:Java 简单 线程 复制 文件 工具 FileUtil2.0

FileUtil2.0相对于版本1.0,多了很多方法,比如,获取文件的后缀名,或修改后缀名和一些文件的简单操作。


文件复制到文件,文件复制到路径,路径下文件复制到新路径下,代码如下,请享用:


package cn.util;


import java.io.*;


/**
 * 线程的方式实现文件的复制。
 文件的复制需要四个参数:1,路径或文件),2路径或文件,3,是否覆盖,4,是否追加,
多文件复制还需要加时间参数(毫秒).
 * 以及File类实例的简单创建,
 *
 * @version 2
 * @author JXLYS
 */
public class FileUtil extends Thread {


    static class FileUtilHelp {//辅助类


        private static FileUtil[] farr = new FileUtil[5];// 线程数量(java默认线程最多10)


        // 创建文件并复制
        private static void createFileAndCopy(File f1, File f2, boolean override, boolean append) {
            if (!f2.exists()) {
                createFile(f2, override);
            } else {
                if (!override)
                    return;
                else {
                    append = false;// 覆盖必然不会追加
                }
            }
            FileUtilHelp.createThread(f1, f2, append);
        }


        private static void createCopy(InputStream is, OutputStream os) {
            int i = 0;
            for (FileUtil f : farr) {
                if (f == null || !f.isAlive()) {
                    farr[i] = new FileUtil();
                    farr[i].setInputStreamAndOutputStream(is, os);
                    farr[i].start();
                }
                i++;
            }
        }


        // 创建路径
        private static void createMkdirs(String path) {
            File f = new File(path);
            if (!f.exists()) {
                f.mkdirs();
            }
        }


        // 开始线程
        private static void createThread(File f1, File f2, boolean append) {
            int i = 0;
            for (FileUtil f : farr) {
                if (f == null || !f.isAlive()) {
                    farr[i] = new FileUtil();
                    farr[i].copyThread(f1, f2, append);
                    farr[i].start();
                }
                i++;
            }
        }


    }


    /**
    * 复制文件1到文件2(可以创建路径)
    *
    * @param f1

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spring的AOP面向切面编程 下一篇log4j日志输出到文件的配置

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目