zoukankan      html  css  js  c++  java
  • Java文件递归拷贝

    import java.io.*;
    
    /**
     * @Author langkye
     */
    public class FileCopy{
        public static void main(String[] args) {
            //源目录
            String srcDir = "D:\src";
            //目标目录
            String targetDir = "D:\target";
    
            File src = new File(srcDir);
            File target = new File(targetDir);
    
            reCopyFiles(src,target);
        }
    
        public static void reCopyFiles(File src, File target){
            //如果src是目录
            if (src.isDirectory()){
                //在目标目录下创建src的文件夹
                File t = new File(target.getAbsoluteFile()+File.separator+src.getName());
                t.mkdirs();
                for (File s :src.listFiles()){
                    //递归调用
                    reCopyFiles(s,t);
                }
            }//如果src是文件
            else if (src.isFile()){
                InputStream in = null;
                OutputStream out = null;
                try {
                    //创建输入、输出流拷贝文件
                    in = new FileInputStream(src);
                    out = new FileOutputStream(target.getAbsoluteFile()+File.separator+src.getName());
                    int len = -1;
                    //每次写8字节
                    byte[] bytes = new byte[1024*8];
                    while ((len=in.read(bytes))!=-1){
                        out.write(bytes,0,len);
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    if (in != null){
                        try {
                            in.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (out!=null){
                        try {
                            out.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
    }
    
  • 相关阅读:
    信号的阻塞
    善用布尔值
    多线程
    手机号码合理性的判断
    P(n,x)实现
    兄弟分钱、海盗分赃
    简单四则运算的实现
    模板技术
    合并字符串
    交换机和路由器比较
  • 原文地址:https://www.cnblogs.com/langkyeSir/p/13963510.html
Copyright © 2011-2022 走看看