IO流實現文件及文件夾的復制


TestCopyDocuments.java

package com.sxt.parc;
/*
 * 復制文件夾  包含文本 視頻 音頻 用字節流  
 */
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class TestCopyDocuments {
    public static void main(String[] args) throws Exception {
        copyDocuments("G:\\source.txt","G:\\dest.txt");
    }

    public static void copyDocuments(String SourcePath, String DestPath) throws Exception {
        //讀入文件到程序
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(SourcePath));
        //寫入數據到文件
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(DestPath));
        byte[] b = new byte[1024];
        int len = 0;
        while((len = bis.read(b)) != -1){
            bos.write(b, 0, len);
        }
        bis.close();
        bos.close();
        System.out.println("復制文件完成!");
    }
}

TestCopyFiles2.java

package com.sxt.parc;
/*
 * 文件夾以及文件的復制
 */
import java.io.File;

public class TestCopyFiles2 {
    public static void main(String[] args) throws Exception {
        CopyFiles("G:\\source","G:\\dest");
        System.out.println("*********復制完成**************");
    }

    private static void CopyFiles(String sourcePath, String destPath) throws Exception {
        //源路徑
        File file = new File(sourcePath);
//        String name = file.getName();
//        System.out.println(name);
        //檢查源路徑是否正確
        if(!file.exists()){
            System.out.println("請檢查您的源路徑是否合法!");
        }
        
        //目標路徑
        File file2 = new File(destPath);
        //如果目標文件夾不存在則創建
        if(!file2.exists()){
            file2.mkdir();//當前目錄創建
        }

//      //列出源文件夾的文件和文件夾列表准備復制
//        String[] list = file.list();//String類型
//        for(String doc: list){
//            System.out.println(doc);
//        }
        //列出源文件夾的文件和文件夾列表准備復制
        File[] listFiles = file.listFiles();
        for(File f :listFiles){
            System.out.println(f.getName());
            //如果是文件夾需要在目標文件夾下創建文件夾
            if(f.isDirectory()){
                //關鍵步驟:遞歸
                //System.out.println(f+"--------->"+destPath+"\\"+f.getName());
                CopyFiles(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName());
            }
            //如果不是文件夾直接復制    
            if(f.isFile()){
                //關鍵步驟:遞歸
                //System.out.println(f+"--------->"+destPath+"\\"+f.getName());
                TestCopyDocuments.copyDocuments(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName());
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM