zoukankan      html  css  js  c++  java
  • IO流-复制多极文件夹(递归实现)

    package com.io.test;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /*
     * 复制多极文件夹
     * 数据源: F:\Demo
     * 目的地: D:\demo
     * 
     * 分析:
     *    A:封装数据源
     *    B:封装目的地
     *    C:获取该File对象下所有的文件夹或文件
     *      遍历每一个File对象
     *    D:判断是否是文件夹或文件
     *       是文件夹:
     *          就在目的地目录下创建该文件夹File
     *          回到C
     *        
     *       是文件:
     *         直接复制
     */
    public class Test07_标准版 {
         public static void main(String[] args) throws IOException {
    		File srcFolder=new File("f:\Demo");
    		File destFolder=new File("d:\demo");
    		if(!destFolder.exists()){
    			destFolder.mkdir();
    		}
    		copyFolder(srcFolder,destFolder);
    	}
        //复制文件夹
    	public static void copyFolder(File srcFolder, File destFolder) throws IOException {
    	    File[] listFiles = srcFolder.listFiles();
    	    for(File f:listFiles){
    	    	if(f.isDirectory()){
    	    		//创建新的目录
    	    		
    	    		File newFolder=new File(destFolder,f.getName());
    	    		newFolder.mkdir();
    	    		copyFolder(f,newFolder);
    	    		
    	    	}else{
    	    		//复制文件
    	    		File newFile=new File(destFolder,f.getName());
    	    		copyFile(f,newFile);
    	    	}
    	    }
    	}
        //复制文件
    	public static void copyFile(File file, File newFile) throws IOException {
    	 BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));
    	 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(newFile));
    	 int len=0;
    	 byte[] buf=new byte[1024];
    	 while((len=bis.read(buf))!=-1){
    		 bos.write(buf, 0, len);
    		 bos.flush();
    	 }
    	    bis.close();
    	    bos.close();
    	}
    }
    

      

  • 相关阅读:
    8 盒子模型
    7 display属性
    如何提高运维价值体系
    Python学习之OS模块初识
    7、MongoDB学习之游标
    Python 学习之文件对象的属性和方法简介
    Python集合set()操作详解
    Python中的字典介绍
    Python序列之元组
    Python序列之列表
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7376530.html
Copyright © 2011-2022 走看看