java IO流作业

1

package indi.exer.yuluo.IO;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @author: yuluo
 * @createTime: 2022/2/25 21:18
 * @File: FindJava.java
 * @Software: IntelliJ IDEA
 * @Description: 获取当前工程目录下的所有java文件
 *
 * 实现思路:
 * 先编写寻找java文件的方法
 * 然后递归遍历文件目录
 * 遍历目录寻找java文件并输出
 *
 */

public class FindJava {

    private static final String path = "F:\\Java\\Java-project\\Demo12( basic)\\basic";
    private static List<File> dirList = new ArrayList<File>();

    public static void main(String[] args) {
        // 新建File对象
        File file = new File(path);
        
        getDirPath(file);

        for (File dirNames : dirList) {
            getJavaFile(dirNames);
        }

    }

    /**
     * 采用递归方式获取目录名 直到是文件时停止递归
     * 并且将获取到的文件加入到list集合中
     * @param file 文件源路径
     */
    private static void getDirPath(File file) {

        if (file.isFile()) {
            return;
        }

        // 获取当前路径下的所有文件
        File[] files = file.listFiles();
        for (File fileNames : files) {
            if (fileNames.isDirectory()) {
                dirList.add(fileNames);
            }

            // 递归调用
            getDirPath(fileNames);
        }

    }

    /**
     * 得到java文件的路径转换为string,如果以.java结尾则输出,不是则跳过
     * @param file 源目录名
     */
    private static void getJavaFile(File file) {

        // 获得此路径下的所有文件
        File[] FileNames = file.listFiles();

        // 对获得文件名称进行判断,如果是java文件 就输出,不是 跳过
        if (FileNames != null) {
            for (File fileNames : FileNames) {
                /*System.out.println("fileNames = " + fileNames);*/
                String path = fileNames.getPath();
                if (path.endsWith(".java")) {
                    System.out.println(path);
                }
            }
        } else {
            System.out.println("获取文件失败!");
        }
    }
}

2

package indi.exer.yuluo.IO;

import java.io.File;

/**
 * @author: yuluo
 * @createTime: 2022/2/25 22:34
 * @File: DeleteOut.java
 * @Software: IntelliJ IDEA
 * @Description: 删除同级目录下的out文件夹
 *
 * delete()方法删除的目标文件夹为空时才能删除
 */

public class DeleteOut {

    /*java项目路径*/
    public static final String path = "F:\\Java\\Java-project\\Demo12( basic)";

    public static void main(String[] args) {

        File file = new File(path);

        // 寻找out文件夹
        File[] files = file.listFiles();
        if (files != null) {
            for (File f : files) {
                // 得到路径的字符串形式
                String dirNames = f.getPath();
                // 判断字符串的末尾是不是out 如果是 执行删除操作
                if (dirNames.endsWith("out")) {
                    System.out.println("找到此路径下的out文件路径为: " + f);
                    System.out.println(deleteFiles(f) ? "删除成功!" : "删除失败!");
                }
            }
        } else {
            System.out.println("获取文件路径失败!");
        }

    }

    /**
     * 递归删除out文件夹中的所有文件
     * @param f 源路径
     */
    private static boolean deleteFiles(File f) {

        // 获取此路径下的所有文件信息
        File[] files = f.listFiles();
        if (files == null) {
            System.out.println("获取文件路径失败");
        }

        // 递归停止条件
        if (!(files.length > 0)) {
            return false;
        }

        for (File file : files) {
            /*System.out.println("file = " + file);*/
            file.delete();

            // 如果是目录继续递归操作
            if (file.isDirectory()) {
                deleteFiles(file);
            }
        }

        // 此时文件夹为空,可以删除文件夹
        return f.delete();

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值