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; }
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
前端工程师的职业规划