File&递归

98 阅读2分钟

一、File

用方法动态的获取分隔符,不能写死

image.png

1、构造方法

构造方法描述
File( String pathname )文件的路径+文件名
File(File parent, String child)parent+child(文件名)=pathnnme
File(String parent, String child)
  • File( String pathname )
    创建对象不会验证路径的合法性(随便写),不会报错

2、创建

2.1 、创建一个具体的文件

创建方法描述
boolean createNewFile()在不具有该名称的文件时在该路径下创建一个新的空文件并在控制台返回true值,如果已经存在,会返回false

image.png 调方法的时候就会验证是否是合法路径,如果没有该路径,就会报错

2.2、创建文件夹

方法描述
boolean mkdir()创建单级文件夹,只能创建一个,不能在创建的文件夹下再次创建,否则会报错
boolean mkdirs()创建多级文件夹 ,能在创建的文件夹下再次创建

3、删除文件和目录

删除方法

删除方法描述
boolean delete()删除此路径表述的文件或文件夹

注意

  • 需要File对象来调用(把File对象所关联的文件从磁盘上删除,这样删除的不会进回收站,永久性删除,不可恢复)
  • 如果是删除文件夹,该文件夹必须是空文件夹,删除之前必须先清空该文件夹里的内容,比如文件夹A包含文件夹B,文件夹B包含文件C,就必须先将其一一清空

image.png

  • 文件是直接删除

4、判断

判断的意义

  • 对文件和文件夹的操作不一样(文件存数据,是让数据放在文件而不是文件夹),把指向文件和文件夹的操作分开
  • 需要得到一个文件夹下的所有File对象,应该是文件夹来调用

方法

判断各方法描述
boolean isDirectory()判断是否是一个文件夹
boolean isFile()判断是否是一个文件
boolean exists()测试此抽象路径名表示的文件或文件夹是否存在

image.png

5、基本的list方法(重点)

方法描述
static File[] listRoots()列出可用的文件系统根(操作系统上面的盘符)(作用: 先判断电脑上有哪些盘符,然后在指定的位置创建文件夹或者文件)
String[] list()返回当前的文件夹对象下面一层的所有的文件(文件夹)的名字
File[] listFiles()返回当前的文件夹对象下面一层的所有的文件(文件夹)(File对象的形式,用的较多
  • listRoots()

image.png

  • list()

image.png

image.png

6、过滤器(filter)

String类型,只能做文件名筛选,不能用方法

6.1、文件过滤器

可以调用方法也可以文件名筛选

  • listFiles
  • list

6.2、文件名过滤器

  • listFiles

二、递归

  • 自己调用自己的方法
  • 注意:一定要设计一个方法出口(在什么时候停下来,不然会挤爆堆栈空间,报错)

image.png