字元流實現資料夾的拷貝
阿新 • • 發佈:2018-12-10
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); } }