码迷,mamicode.com
首页 > 其他好文 > 详细

递归实现文件的复制。

时间:2018-06-20 19:06:35      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:exce   java   wpa   path   rgs   generate   ack   for   关闭   

有些时候我们要用到递归来处理一些业务,对于递归一定要有出口。

下面使用递归来实现把d盘的一个文件夹复制到c盘。

直接可用。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class copyFile {
      public static void main(String[] args) {
        //复制d盘文件到C盘
        File f=new File("D:/1");
        copyMethod(f);
    }

    private static void copyMethod(File f) {
        
        if(f.isFile()){
            
         String    filePath=f.getAbsolutePath();
         String newPath="C"+filePath.substring(1);
        
         File parentFile = new File(newPath).getParentFile();
        
         if(!parentFile.exists()){
             parentFile.mkdirs();
         }
         FileInputStream  fis=null;
         FileOutputStream fos=null;
        
         try {
            fis=new FileInputStream(filePath);
            fos=new FileOutputStream(newPath);
            byte[] bytes=new byte[1024];
            int len=0;
            while((len=fis.read())!=-1){
                fos.write(bytes, 0, len);
                
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(fis!=null){
                try {
                    fis.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(fos!=null){

    //这里的流一定要及时关闭。并且不建议将两个流的关闭放在一个try{}catch(Execption e){}中。
                try {
                    fos.close();
                } catch (IOException e) {
                   
                    e.printStackTrace();
                }
            }
        }
            return;  //最后一定要记得。
            
        }
        File[] fs=f.listFiles();//如果目录就取出list。
        
        for (File subf:fs) {
           
            copyMethod(subf);
        }
        
    }
}

递归实现文件的复制。

标签:exce   java   wpa   path   rgs   generate   ack   for   关闭   

原文地址:https://www.cnblogs.com/wangyanei2017/p/9204701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!