案例:复制多级目录及其中的文本文件

案例:复制多级目录及其中的文本文件,第1张

        之前学习了File类,到现在也忘得差不多了,今天刚好一起复习一下,这次我用了递归调用的方法复制文件夹中的文件。

import java.io.*;

public class demo {
    public static void copy(File file) throws IOException {
//        用listFiles方法把要复制的文件夹的所有文件(文件夹)作为一个File对象存放到数组
        File[] s=file.listFiles();
//        拼接文件复制的目的地,不知道为什么substring从2开始才能把C:给截掉
        File file1=new File("C:\copy"+file.getAbsolutePath().substring(2));
//        判断这个目的地是否存在,如果不存在就创建
        if(!file1.exists()){
            file1.mkdir();
        }
//        遍历刚才得到的File数组
        for(File f:s){
//            如果这个File对象指的是个文件,就用字符缓冲流赋值到目的地
            if(f.isFile()){
                BufferedReader br=new BufferedReader(new FileReader(f));
                String s2=file1.getAbsoluteFile()+"\"+f.getName();
                BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
                String s1;
                while ((s1=br.readLine())!=null){
                    bw.write(s1);
                    bw.newLine();
                    bw.flush();
                }
                br.close();
                bw.close();
//                如果它不是个文件说明它是个文件夹,那就得到它的路径然后递归调用copy方法,直到没有文件夹
            }else{
                File file2=new File(String.valueOf(f.toPath()));
                copy(file2);
            }
        }
    }
    public static void main(String[] args) throws IOException {
//        要复制的目录
        File file=new File("C:\data");
//        调用copy方法
        copy(file);
    }
}

经过不断地改错和测试,最终也是完成了功能,不过可能不是那么精妙就是了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/735308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存