Java基础之File的使用详细笔记说明

前言

首先感谢您的阅览,本篇主要记录File的基本使用,及一些api,结合案例。
文章或有不足,还望多多包涵,也欢迎您的补充与指正,希望小小的笔记能帮到您答疑解惑


File概述

File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
这个路径可以是存在的,也允许是不存在的

在这里插入图片描述

使用方式如下

在这里插入图片描述

在这里插入图片描述

有了File对象,就可以调用对应的api来操作


File成员方法

方法使用格式都大同小异

File f = new File("路径");
f.你想调用的方法;

判断获取相关

在这里插入图片描述


创建删除相关

在这里插入图片描述


获取并遍历

主要是用蓝色标记的方法,获取路径下的所有内容(就是该文件夹里的所有文件和文件夹),并放入数组中返回
在这里插入图片描述

细节

  • 当调用者File表示的路径不存在时,返回null
  • 当调用者File表示的路径是文件时,返回null
  • 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
  • 当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  • 当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

案例

使用范例

在这里插入图片描述

删除多级文件夹

    public static void deleteAll(File src){
    
    
        //1.进入目录,获取所有内容
        File[] files = src.listFiles();
        //2.遍历
        for (File file : files) {
    
    
            if (file.isFile()){
    
    //判断是否是一个文件
                //是文件,执行删除业务
                file.delete();
            }else {
    
    
                //不是文件而是文件夹,需要递归,先删除文件夹内部数据
                deleteAll(file);
                //当内部递归调用完后,该文件夹中文件删除干净后,该文件夹就为null了,for循环结束
                //直接走到递归方法的最下面的删除业务,所以调用递归方法,最终可以删除该文件夹下所有数据以及该文件夹
            }
        }
        src.delete();

    }

统计文件夹大小

    public static long sumLength(File src){
    
    
        /**
         * 统计文件大小(包括子文件夹中的内容)
         */
        File[] files = src.listFiles();
        long len = 0;
        for (File file : files) {
    
    
            if (file.isFile()){
    
    
                len = len + file.length();
            }else {
    
    
                //这里递归不行是因为,每次递归回调该方法,len会被初始化为0;又从0开始加
                //而且子文件夹里的数据大小return出来后也没有接收,所以需要用下面的写法接收大小
                len = len + sumLength(file);
            }
        }
        return len;
    }

猜你喜欢

转载自blog.csdn.net/giveupgivedown/article/details/128933798