案例:复制单级文件夹

 

数据源目录内容:

public class CopyFolderDemo {
    public static void main(String[] args) throws IOException{
        //1.创建数据源目录对象
        File srcFolder = new File("D:\\JavaTest");

        //2.获取数据源目录File对象的名称
        String srcFolderName = srcFolder.getName();

        //3.创建目的地目录File对象,路径名是模块名+srcFolderName组成
        File destFolder = new File("myFile",srcFolderName);

        //4.判断目的地目录对应的File是否存在,如果不存在,就创建
        if (!destFolder.exists()){
            destFolder.mkdir();
        }

        //5.获取数据源目录下所有文件的File数组
        File[] listFiles = srcFolder.listFiles();

        //6.遍历File数组,得到每一个File对象,该File对象,其实就是数据源目录下的每一个数据源文件
        for (File srcFile : listFiles){
            //7.获取每一个数据源文件File对象的名称
            String srcFileName = srcFile.getName();

            //8.创建目的地文件File对象,路径名是目的地目录+数据源文件名称组成
            File destFile = new File("myFile",srcFileName);

            //9.复制文件
            copyFile(srcFile, destFile);
        }
    }

    private static void copyFile(File srcFile, File destFile) throws IOException {
        //字节缓冲输入流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        //字节缓冲输出流
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));

        //读写数据
        byte[] bys = new byte[1024];
        int len;
        while ((len=bis.read(bys))!=-1){
            bos.write(bys,0,len);
        }

        //释放资源
        bis.close();
        bos.close();
    }
}

运行结果:

posted @ 2020-04-20 16:20  硬盘红了  阅读(151)  评论(0编辑  收藏  举报