File类 递归

File类: 
描述程序当中操作的文件和目录
*          D:\aaa\bbb.txt;F:\\bbb\ccc.txt
*          jdk;tomcat;mysql
*          D:\\develop\\Java\\jdk1.8.0_191
*          D:/develop/Java/jdk1.8.0_191
*  属性:
*     1. static String pathSeparator 路径分隔符  等价于在字符串书写的;/:
*     2. static String separator 目录分隔符 等价于在字符串书写的\\效果
* 备注:
*     分隔符: 1.如果使用的是反斜杠,那么需要使用两个"\\"来进行目录区分
*              如果使用的是正斜杠,那么只需要使用一个"/"即可连接
*            2. 对于不同的操作系统,路径分隔符一般不一样,Windows系统当中使用的是;作为分割,Linux系统当中使用的是:作为分割
*  构造方法:
*      1. File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
*      2. File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例。
*      3. File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。
*  路径:
*     相对路径: 相对于它所在的项目路径
*     绝对路径: 以盘符(根目录)为开头的路径为绝对路径
*     项目的根路径:文件直接放到项目目录下
*  File类的常用API方法
*      1. getAbsolutePath() 获取file对象的绝对路径
*      2. getName() 获取file对象的文件名称或者是目录名称
*      3. getParent() 获取file文件的父路径  不包含文件本身的一个路径
*      4. length() 获取文件的大小
*      5. getPath() 返回值是变化的
*      6. boolean isFile() 测试此抽象路径名表示的文件是否为普通文件。
*      7. exists() 判断该文件在硬盘当中是否存在
*      8. boolean isDirectory() 判断该file实例是不是一个目录
*      9. boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
*      10. boolean mkdir() 创建由此抽象路径名命名的目录。
*      11. boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
*      12. boolean delete() 删除由此抽象路径名表示的文件或目录
*      13. String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
*      14. File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
*      15. File[] listFiles(FileFiler filer) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
*  备注:
*      1.getPath()方法 如果程序获取该文件是通过绝对路径获取的,那么该方法的返回值是一个绝对路径
*                      如果程序获取该文件是通过相对路径获取的,那么该方法的返回值就是一个相对路径
*      2.File类当中的方法  只能识别project工程类型  不能直接识别module工程类型
*      3.createNewFile() 要求创建文件的路径在硬盘当中是真实存在的(不能出现空目录),否则就会抛出一个异常
*                        java.io.IOException: 系统找不到指定的路径。
*      4. delete() 它可以删除文件或者文件夹,当删除文件夹时,必须保证该文件夹下没有任何的文件或者子文件夹,否则删除失败
*      5. listFiles(FileFilter filter) 这个方法需要添加一个过滤器,里面重写accept(File file)方法
*                      该方法只能对单层子文件夹中的文件或者目录进行过滤
*                      accept(File file)它的返回值是一个boolean值,如果返回值为false,代表该文件不允许存入到File数组当中
*                      如果该方法的返回值为true,代表该文件需要放入到File数组当中
递归: 方法递归
*  方法递归两种方式:
*     直接递归:方法内部直接调用自己本身
*     间接递归:方法内部不是直接调用自己,但是通过其他方法还可以再次调用到该方法,形成一个闭环
*   出口---->边界条件--->让当前正在执行的递归方法停止
* 注意事项:
*    1. 递归必须有边界值:
*    2. 使用递归次数不能过多,一般都是较少的次数
*    3. 构造方法不能使用递归
文件过滤器   
Filter--->过滤器
*  FileFilter
*  listFiles() ---File[]
*  list(FileFilter filter) --->File[]
*  在FileFilter类当中的accept()方法
*  是用来添加满足条件的文件,如果accept方法的返回值是true,代表该文件(File实例)是允许存入到File数组当中的
*  如果accept方法的返回值为false,就代表该文件是不允许放入到File数组当中的
*  Arrays.deepToString()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值