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();
        }
    }

  • 相关阅读:
    《大道至简》读后笔记_3
    学习进度表_十周
    《大道至简》读后笔记_2
    《大道至简》读后笔记_1
    《梦断代码》读后笔记_3
    《梦断代码》读后笔记_2
    学习进度表_九周
    《梦断代码》读后笔记_1
    小组评价
    团队效绩计划
  • 原文地址:https://www.cnblogs.com/tk55/p/8580721.html
Copyright © 2011-2022 走看看