1-9练习

该文章展示了如何使用Java的File类进行文件和文件夹的操作,包括删除文件夹(支持空和非空),在指定路径创建文件夹和文件,以及利用字节输入输出流实现文件夹的复制。代码示例详细解释了每个操作的实现过程。
摘要由CSDN通过智能技术生成
 1. 使用File类相关的方法 ,编写删除文件夹的方法
    要求:既能删除空文件夹  也能删除非空文件夹
public static void test1(File file) {
        File[] allFile = file.listFiles();

        for (File f:allFile) {
            if (file.exists()){
                if (f.isFile()){//是文件 直接删除
                    file.delete();
                }else {//  文件夹  获取所有内容
                    File[] files = file.listFiles();
                    if(files.length != 0 ){
                        for (File fi: files) {
                            test1(fi);
                        }
                        f.delete();
                    }else {
                        f.delete();
                    }
                }
            }else{
                System.out.println("无文件");
            }

        }

    }

 

2. 使用绝对路径,在D盘创建一个testIO文件夹,然后再testIO文件中创建一个1.txt文件中;
   使用相对路径,在当前项目下创建一个testIO文件夹,然后再testIO文件中创建一个2.txt文件中
public static void test2() throws IOException {
        File file = new File("D:\\testIO");
        file.mkdir();
        File file1 = new File(file,"1.txt");
        file1.createNewFile();
        File file2 = new File("teseIO");
        file2.mkdir();
        File file3 = new File(file2,"2.txt");
        file3.createNewFile();
    }

 

3. 文件夹的复制
   提示:结合 File类  和   字节输入输出流  相关的方法

 

    public static void test3(File src,File target) throws IOException {
        if (src.isFile()){
            FileInputStream fis = new FileInputStream(src);
            FileOutputStream fos = new FileOutputStream(target);
            int readNum =-1;
            byte[] cs = new byte[1024*1024];
            while ((readNum = fis.read(cs)) != -1){
                String str =new String(cs,0,readNum);
                fos.write(str.getBytes());
            }
            fis.close();
            fos.close();
        }else {
            target.mkdir();
            File[] files = src.listFiles();
            for (File f:files) {
                test3(f,new File(target,f.getName()));
            }

        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值