File类简介

java.io.File类
 1. 代表硬盘上的一个文件或者目录

java.io.File类作用
 1. 每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息,如名称、长度、所含文件个数等,调用它的方法则可以完成对文件或目录的常用管理操作,例如,创建、删除等操作。

Java中文件或者目录的路径表示
 1. Windows中文件或者目录的表示C:\abc\txt
 2. Java中文件或者目录的表示C:\abc\txt,或者C:/abc/txt

  File对象可以表示目前还不存在的文件或者文件夹,File对象只包含文件的信息,代表这个文件,并不是真正的文件,操作File对象就相当于操作相应的文件或者目录。

File类的构造方法

  由于File类的每一个对象都表示的是一个具体的目录或者文件,所以File类没有提供无参的构造方法,File类的所有构造方法都需要一个目录或者文件的路径作为参数

构造方法
 1. File(String pathname):参数1指定目录。
 2. File(String parent, String child):参数1指定目录,参数2文件名。
 3. File(File parent, String child) :参数1指定File对象,参数2文件名。

1610803475398.png

f0,f1,f2,f4虽然代表的是同一个文件,但是是不同的对象。

File类的常用方法

常用方法

boolean createNewFile()创建一个新文件

boolean mkdir() / mkdirs()创建新的目录

boolean delete() 删除文件或者目录

void deleteOnExit() 虚拟机退出时删除文件或者目录

boolean exists() 判断当前文件或者目录是否存在

boolean isFile() 判断File对象代表的是否是一个文件

boolean isDirectory() 判断File对象代表的是否是一个目录

String getPath() 返回当前File对象的字符串路径

String getName()返回当前File对象的文件名或者目录名

String getParent()返回当前File对象的父级目录

String getAbsolutePath()返回当前File对象的绝对路径

String[]list()返回当前File对象包含的子目录以及文件

listFile() 返回指定目录下的所有文件和文件夹的File对象数组

1610803475467.png

1610803475516.png

权限不足

  当我们创建一个文件时候,有时权限不足会创建失败,在Java中给出了相应的异常,当我们权限不够的时候,java会抛出一个异常。

1610803475549.png

mkdir和mkdirs区别

java.io.File.mkdir():只能创建一级目录,且父目录必须存在,否则无法成功创

java.io.File.mkdirs():可以创建多级目录,父目录不一定存在。

listFiles方法的使用

判断某个目录是不是文件夹,如果是,则列出所有的文件和文件夹

1610803475598.png

文件名后缀的真正作用

  文件后缀名本就没有什么用,唯一的作用就是告诉操作系统用什么软件打开,这时我们双击文件后,系统会使用默认的软件打开。

  当我们打开某个文件时,会弹出让你选择使用什么软件打开,这说明,操作系统不认识这个文件的后缀名,不知道使用什么软件打开,我们可以到控制面板中,将该文件的后缀名关联到某个软件,这时双击文件的时候,操作系统就知道使用什么软件打开该文件了,这就是文件后缀名的作用。

  不同的文件后缀名是不同的,如果.java文件用图片软件打开,会出现乱码,但是呢?当你把.java后缀改为.mp4,这时依旧可以使用文本编辑器打开,同时也能正常查看。

关于文件删除的思考

如果文件夹里有文件或者文件夹使用delete是删除不了的,会返回false。

1610803475636.png

delete()可以删除一个文件或者一个空文件夹。

如何删除一个非空文件夹,包括里面所有文件以及文件夹呢?

递归查找文件夹下所有内容

遍历一个文件下所有的子文件包括文件夹
 1. 遍历指定的文件夹方法

1610803475689.png

1610803475720.png

1610803475791.png