Files
Java-Basic-and-Advanced/file类.md
2026-01-07 16:14:38 +08:00

3.6 KiB
Raw Blame History

file类

创建对象

相对路径绝对路径:(重点)

相对路径:相对于当前项目的路径

File类常用方法

image-20251222170000954

File类的创建和删除

image-20251222172800813

File类的遍历方法

image-20251222174208835

案例展示:

寻找文件夹

public class FileDemo2 {
    public static void main(String[] args) {
 getDir();
    }
    public static File getDir() {
        System.out.println("请输入要找的文件夹");
        Scanner sc = new Scanner(System.in);
        while (true) {
            String put = sc.nextLine();
            File dir = new File(put);
            if (!dir.exists()) {
                System.out.println("你输入的文件夹不存在,请重新输入");
            } else if (dir.isFile()) {
                System.out.println("你输入的是一个文件不是文件夹,请重新输入");
            } else {
                return dir;
            }
        }
    }
}
//打印输入文件夹下所有的.java文件
public class FileDemo3 {
    public static void main(String[] args) {
        File diry = FileDemo2.getDir();
        find(diry);
    }

    private static void find(File dir) {
        //获取当前文件夹下所有文件和文件夹对象转化为file数组形式
        File[] files = dir.listFiles();
        for (File file : files) {
            //若是文件,判断是否为.java后缀
            if (file.isFile() && file.getName().endsWith(".java")){
                System.out.println(file);
                //若是文件夹则进到下一级继续判断
            } else if (file.isDirectory()) {
                //注意事项可能遍历的数组会返回为null
                if (file.listFiles() != null) {
                    find(file);
                }
            }
        }
    }
}
//删除文件夹
public class FileDemo4 {
    public static void main(String[] args) {
        //谨慎测试
        deleteDir(new File("D:\\测试Java1"));
    }
    public static void deleteDir(File dir){
        File[] files = dir.listFiles();
        //遍历当前flie数组获取到每一个文件对象
        for (File file : files) {
            if (file.isFile()){
                file.delete();
                //若是文件夹,则进到里面继续删文件,运用递归
            }else if (file.isDirectory()){
                //判断数组集合是否为空
                if (file.listFiles()!=null){
                deleteDir(file);
                }
            }
        }
        dir.delete();
    }
}
//统计文件大小
public class FileDemo5 {

    public static void main(String[] args) {
        //键盘录入文件夹路径,统计文件大小
        File dir = FileDemo2.getDir();
        int i = fileSize(dir);
        System.out.println(i);
    }
    public static int fileSize(File di){
        int size = 0;
        //遍历
        File[] files = di.listFiles();
        for (File file : files) {
            //判断是否是文件
            if (file.isFile()){
           int a = (int)file.length();
           size+=a;
            }else {
                if (file.listFiles() != null){
                    size += fileSize(file);
                }
            }
        }
        return size;
    }
}