其他分享
首页 > 其他分享> > 复制单级文件夹下的文件

复制单级文件夹下的文件

作者:互联网

案例描述:

在本地 D:\iofile 文件夹目录下有以下几类文件,把该文件夹全部复制到另外一个位置( C:\iofile )

步骤分析:

File 类  缓冲字节流(BufferedInputStream、BufferedOutputStream)

先看上面两个,方便更好地读懂下面的代码

import java.io.*;
public class Copyfolder02 {
    public static void main(String[] args) throws IOException{
        // 1.描述一个数据源文件夹
        File srcFolder = new File("D:\\iofile");
        // 2.获取数据源文件夹的名称
        String srcFolderName = srcFolder.getName();   // iofile
        // 3.拼接一个目的地文件夹路径
        File destFolder = new File("C:\\", srcFolderName);  // C:\iofile
        // 4.在目的地创建该文件夹
        if (!destFolder.exists()){       // 是否真实存在的路径
            destFolder.mkdir();   // 创建一级文件夹
        }
        // 5.获取数据源文件路径
        File[] srcFiles = srcFolder.listFiles(); //返回一个抽象路径名数组,包含文件夹下所有文件名
        for (File srcFile : srcFiles) {
            String srcFileName = srcFile.getName(); // 拿到每一个文件名
            // 描述目的地文件路径
            File destFile = new File(destFolder, srcFileName); // 拼接 (C:\iofile + 文件名)
            // 6.完成复制
            copyFile(srcFile, destFile);
        }
    }
    // 复制全部文件
    public static void copyFile(File srcFile, File destFile) throws IOException {
        FileInputStream fis = new FileInputStream(srcFile);
        BufferedInputStream bis = new BufferedInputStream(fis);

        FileOutputStream fos = new FileOutputStream(destFile);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        // 缓冲流一次读写一个字节数组
        byte[] bytes = new byte[8192];  // 字符数组
        int len;
        while ((len = bis.read(bytes)) != -1){  // 读
            bos.write(bytes,0,len);     // 写
        }
        bis.close();
        bos.close();
    }
}

运行代码后,全部文件将会被复制到 C:\iofile 文件夹下:

 

标签:iofile,数据源,复制,文件夹,File,目的地,new,单级
来源: https://www.cnblogs.com/lwj0126/p/16321894.html