IO流復(fù)制整個文件夾

package 練習;

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ù)制整個文件夾
public class fuzhiFolder {

public static void main(String[] args) throws IOException {
    File f = new File("C:\\Users\\86187\\Desktop\\藍橋資料\\學習資料"); //原文件夾
    String newPath = "E:\\新建文件夾";                                   //復(fù)制到的目的目錄
    mkdirFile(f,newPath);                                               //調(diào)用mkdirFile方法
}

public static void mkdirFile(File file,String path) throws IOException {
    
    File[] listFiles = file.listFiles();                    //得到file文件夾下的所有文件及目錄
    for (File f1 : listFiles) {                             //循環(huán)處理所有文件及目錄f1
        if(f1.isDirectory()) {                              //如果f1是文件夾
            File newFile = new File(path,f1.getName());     //新建一個文件夾對象(目的目錄路徑+f1的文件名)
            newFile.mkdir();                                //新建文件夾
            mkdirFile(f1,newFile.getAbsolutePath());        //遞歸調(diào)用本方法處理新建文件夾
        }else {
            copyFile(f1,new File(path,f1.getName()));       //如果是文件,調(diào)用copyFile方法
        }
    }
}

public static void copyFile(File descfile, File newfile) throws IOException {
    FileInputStream in = new FileInputStream(descfile);         //新建字節(jié)輸入流in
    BufferedInputStream bfin = new BufferedInputStream(in);     //新建緩沖的字節(jié)輸入流bfin,包含住in
    
    FileOutputStream out = new FileOutputStream(newfile);       //新建字節(jié)輸出流out
    BufferedOutputStream bfout = new BufferedOutputStream(out); //新建緩沖的字節(jié)輸出流bfout,包含住out
    
    byte[] b = new byte[1024];                      //新建字節(jié)數(shù)組,作為二級緩沖區(qū)
    
    int len;
    while ((len = bfin.read(b))!= -1) {             //將讀取到的b長度的內(nèi)容賦給len,并判斷是否為空
        bfout.write(b,0,len);                       //不為空的話,將讀取到的內(nèi)容len放到b中,0是開始位置。再寫入
    }
    
    //關(guān)閉流,只需要關(guān)閉最外層流。先關(guān)輸出,再關(guān)輸入
    bfout.close();      
    bfin.close();
    
}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容