IO流练习:复制单级文件夹

把“/Users/mac/Desktop/123”这个文件夹复制到模块目录下

步骤:

  1. 创建数据源目录File对象,路径是/Users/mac/Desktop/123
  2. 获取数据源目录File对象的名称
  3. 创建目的地目录File对象,路径由(模块名+第2步获取的名称)组成
  4. 判断第3步创建的File是否存在,如果不存在,就创建
  5. 获取数据源目录下所有文件的File数组
  6. 遍历File数组,得到每一个File对象,该File对象,其实就是数据源文件
  7. 获取数据源文件File对象的名称
  8. 创建目的地文件File对象,路径由(目的地目录+第7步获取的名称)组成
  9. 复制文件
import java.io.*;

public class demo{
    public static void main(String[] args) throws IOException {
        /*
        srcFolder:原目录File
        srcFolderName:原目录名
        destFolder:目的地File
        listFiles:原目录下文件
        srcFile:原目录下File对象
        srcFileName:原目录下File对象名
        destFile:目的地File对象
         */

        //创建数据源目录File对象
        File srcFolder = new File("//Users//mac//Desktop//123");

        //获取File对象名称
        String srcFolderName = srcFolder.getName();

        //创建目的地目录File对象
        File destFolder = new File("//Users//mac//IdeaProjects//demo",srcFolderName);

        //判断创建的File是否存在,不存在->创建一个
        if(!destFolder.exists()){
            destFolder.mkdir();
        }

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

        //遍历数组,获取名称
        for(File srcFile : listFiles){
            String srcFileName = srcFile.getName();

            //创建目的地文件File对象
            File destFile = new File(destFolder,srcFileName);
            //复制文件
            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);
        }

        bos.close();
        bis.close();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值