Java学习之文件夹的拷贝

本文详细介绍了如何使用Java的IO流进行文件和文件夹的复制操作,包括输入流(InputStream)和输出流(OutputStream)的具体应用。通过递归方式实现文件夹的完整复制,确保所有文件和子目录被正确复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

涉及到的知识点

1.IO流输入流(InputStream)的应用。
2.IO流输出流(OutputStream)的应用。


代码呈现

import java.io.*;
public class DirCopy {
    public static void main(String[] args) {

        File finit = new File("C:\\Users\\11310\\todaytest\\d1");

        File fcopy = new File("copyd");
        copyDir(finit,fcopy);

    }
   //文件的拷贝代码
    public static void copyFile(File f1,File f2){

        InputStream in = null;
        OutputStream os = null;

        try {
            in = new FileInputStream(f1);
            os = new FileOutputStream(f2);


            byte[] flush = new byte[1024];
            int len = -1;

            while((len = in.read(flush))!=-1){
                os.write(flush,0,len);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }finally {

            try {
                if(os !=null){
                    os.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                if (in != null) {

                    in.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
//用递归实现文件夹的拷贝
    public static void copyDir(File f1,File f2){

        if(f1.isDirectory()){

            File temp = new File(f2,f1.getName());
            temp.mkdirs();

            for(File f:f1.listFiles()){
                copyDir(f,temp);

            }
        }else{

            File newFile = new File(f2,f1.getName());

            copyFile(f1,newFile);
        }


    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值