zoukankan      html  css  js  c++  java
  • 多线程复制文件夹

    import java.io.*;
    import java.util.Scanner;
    
    /**
     * Created by Admin on 2018/3/16.
     */
    public class MutiFilesCopy implements Runnable{
        @Override
        public void run() {
            String fromDir="D:\lucene\data";
            String toDir="D:\lucene\out";
                try {
                    copyDir(fromDir,toDir);
                    System.out.println("copy:"+Thread.currentThread().getName());
                } catch (IOException e) {
                    e.printStackTrace();
            }
        }
    
        public void copyDir(String fromDir, String toDir) throws IOException {
           File f=new File(fromDir);
           String[] fs=f.list();
           if(!new File(toDir).exists()){
               System.out.println("mkdirThread:"+Thread.currentThread().getName());
               new File(toDir).mkdir();
           }
           for(int i=0;i<fs.length;i++){
               synchronized ("") {
                   System.out.println("copyDir:"+Thread.currentThread().getName());
                   if ((new File(fromDir + f.separator + fs[i])).isDirectory()) {
                       copyDir(fromDir + f.separator + fs[i], toDir + f.separator + fs[i]);
                   }
                   if ((new File(fromDir + f.separator + fs[i])).isFile()) {
                       copyFile(fromDir + f.separator + fs[i], toDir + f.separator + fs[i]);
                   }
               }
           }
       }
    
        private void copyFile(String sourceDir, String targetDir) throws IOException {
           File sourcefile=new File(sourceDir);
           File targetfile=new File(targetDir);
           FileInputStream in=new FileInputStream(sourcefile);
           FileOutputStream out=new FileOutputStream(targetfile);
           byte[] b=new byte[2097152]; //2g
            System.out.println("copyfileThread:"+Thread.currentThread().getName());
           while ((in.read(b))!=-1){
               out.write(b);
           }
        }
    
    }
    /**
     * Created by Admin on 2018/3/16.
     */
    public class Testcopy {
        public static void main(String[] args) {
            MutiFilesCopy m=new MutiFilesCopy();
            Thread a=new Thread(m);
            Thread b=new Thread(m);
            Thread c=new Thread(m);
            a.start();
            b.start();
            c.start();
        }
    }

  • 相关阅读:
    WPF的布局--DockPanel
    WPF的布局--StackPanel
    C#中的不可空类型转为可空类型
    linux下安装nodejs及npm
    HTML DOM 事件对象 ondragend 事件
    pc端页面在移动端显示问题
    css设置文字上下居中,一行文字居中,两行或多行文字同样居中。
    超简单的gif图制作工具
    Git创建与合并分支
    props default 数组/对象的默认值应当由一个工厂函数返回
  • 原文地址:https://www.cnblogs.com/tk55/p/8580721.html
Copyright © 2011-2022 走看看