1-9练习

该文展示了如何使用Java的File类进行文件和文件夹的操作,包括递归删除文件夹、在指定路径创建文件夹和文件,以及复制整个文件夹结构。示例代码详细解释了如何处理空和非空文件夹的删除,以及利用字节流进行文件复制。
摘要由CSDN通过智能技术生成

1、使用File类相关的方法 ,编写删除文件夹的方法

要求:既能删除空文件夹 也能删除非空文件夹


public class Task1 {
    public static void deleteDir(File f) {
        //        使用File类相关的方法 ,编写删除文件夹的方法
        //        要求:既能删除空文件夹  也能删除非空文件夹
        if(f.isDirectory()){
            File files[]=f.listFiles();
            for(int i=0;i< files.length;i++){
                deleteDir(files[i]);
            }
            f.delete();
        }
        else f.delete();
    }
    public static void main(String[] args) {
        File f = new File("D:\\a");
        deleteDir(f);
    }
}

2、使用绝对路径,在D盘创建一个testIO文件夹,然后再testIO文件中创建一个1.txt文件中;

使用相对路径,在当前项目下创建一个testIO文件夹,然后再testIO文件中创建一个2.txt文件中


public class Task2 {
    public static void main(String[] args) throws IOException {
//        使用绝对路径,在D盘创建一个testIO文件夹,然后再testIO文件中创建一个1.txt文件中;
//        使用相对路径,在当前项目下创建一个testIO文件夹,然后再testIO文件中创建一个2.txt文件中
        File dir1=new File("D:\\testIO");
        dir1.mkdir();
        File f1=new File(dir1,"1.txt");
        f1.createNewFile();
        File dir2=new File("testIO");
        dir2.mkdir();
        File f2=new File(dir2,"2.txt");
        f2.createNewFile();
    }
}

3、文件夹的复制

public class Task3 {
    public static void copyDir(File src, File target) throws Exception {
//        文件夹的复制
//        提示:结合 File类  和   字节输入输出流  相关的方法
            target.mkdir();
            File files[]=src.listFiles();
            for (int i = 0; i < files.length; i++) {
                if(files[i].isFile())
                {
                    FileInputStream fis=new FileInputStream(files[i]);
                    FileOutputStream fos=new FileOutputStream(new File(target,files[i].getName()));
                    int read=-1;
                    byte bytes[]=new byte[3];
                    while((read=fis.read(bytes))!=-1)
                        fos.write(bytes);
                    fis.close();
                    fos.close();
                }
                else {
                    copyDir(files[i],new File(target,files[i].getName()));
                }
            }
        }
    public static void main(String[] args) throws Exception {
        File f=new File("D:\\a");
        copyDir(f,new File(f.getAbsolutePath()+"_copy"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值