1. 程式人生 > >字元流實現資料夾的拷貝

字元流實現資料夾的拷貝

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

 }

}