字符流实现文件夹的拷贝

package cn.com.five;

 

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

public class DG {

 //11.课堂练习

 //1.用字符流做文件夹的拷贝

 public static void  files(File src,File tar) {

  //1.新建一个目录(原文件与目标文件)

  //2.输入流输出流与文件目录建立链接

  FileReader fi=null;

  FileWriter fw=null;

  try {

   fi=new FileReader(src);//先读取

   fw=new FileWriter(tar);//后写

   char [] b=new char[1024];

   while(-1!=fi.read(b)){

       fw.write(b); 

   }

  } catch (FileNotFoundException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  } catch (IOException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();}finally{

     if(fi!=null){

      try {

       fi.close();

      } catch (IOException e) {

       // TODO Auto-generated catch block

       e.printStackTrace();

      }

     }

    if(fw!=null){

     try {

      fw.close();

     } catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

     } 

    }

    

   }

 }

 //1.文件夹

 public static void documents(File src,File tar){

  if(src.isDirectory()){//1.如果是文件夹的话

   //1.首先判断是不是空的

   if(src.exists()&&src!=null){

    //2.创建路径

    tar.mkdirs();

    //3.如果是文件夹遍历,如果是文件拷贝

       File [] file=src.listFiles();

    for(File f:file){

     documents(f, new File(tar,f.getName()));

    } 

   }else{

    System.out.println("文件不存在");

   } 

  }else{

   files(src,tar);

  }

  

 }

 public static void main(String[] args) {

  File src=new File("D:/TEST");//原文件

  File tar=new File("D:/TARGET");

  documents(src, tar);

 }

}

 

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/82781125