【Java基础练习题】多线程IO流操作实现文件的复制(举一反三)

前言:时不我待,忽而已春,初夏将至。然惊觉自身Java基础仍薄弱不堪,虽“雄关万道真如铁”,只得“万里关山从头越”。把基础打扎实才是根本,对于日后的工作而言也是极为重要。通过不断的学习和理解加上手动实践代码程序,才是编程学习的上上之选!

题目:使用多线程实现文件的复制。输入初始文件路径,输入目标文件夹路径,实现复制操作。

思路:

1、如果只是实现文件的复制操作,可以通过文件的reNameTo()方法实现,但是如果文件包括文件夹那就只能通过文件IO流操作实现。

2、首先,最基本的实现遍历一个文件夹所有文件并打包到一个集合中。

3、启用多线程,建立线程池,对文件进行IO流操作实现文件的复制。

一、文件的遍历

1、获取全部文件

 public static List GetAllFiles(String SourceFile)//获取所有文件
    {
        List<File> FileList=new ArrayList<>();//文件列表
        File file=new File(SourceFile);//获取源文件
        if (file.exists()&&file.isDirectory()) {//如果文件存在且是文件夹形式则进行递归
            FileList = LongEegodic(file, FileList);
        }
        return FileList;
    }

2、递归

public static List LongEegodic(File file,List res)//递归获取文件、文件夹
    {
        File filelist[]=file.listFiles();
        if (filelist==null)//文件为空直接返回
            return null;
        for (File file1:filelist)
        {
            res.add(file1);//无论是文件夹还是文件都加入列表
            LongEegodic(file1,res);//递归,继续获取子文件
        }
        return res;
    }

二、文件的IO流实现文件的复制操作

  public static void Copy(F
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kook小辉的进阶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值