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文件名。
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对象数组
权限不足
当我们创建一个文件时候,有时权限不足会创建失败,在Java中给出了相应的异常,当我们权限不够的时候,java会抛出一个异常。
mkdir和mkdirs区别
java.io.File.mkdir():只能创建一级目录,且父目录必须存在,否则无法成功创
java.io.File.mkdirs():可以创建多级目录,父目录不一定存在。
listFiles方法的使用
判断某个目录是不是文件夹,如果是,则列出所有的文件和文件夹
文件名后缀的真正作用
文件后缀名本就没有什么用,唯一的作用就是告诉操作系统用什么软件打开,这时我们双击文件后,系统会使用默认的软件打开。
当我们打开某个文件时,会弹出让你选择使用什么软件打开,这说明,操作系统不认识这个文件的后缀名,不知道使用什么软件打开,我们可以到控制面板中,将该文件的后缀名关联到某个软件,这时双击文件的时候,操作系统就知道使用什么软件打开该文件了,这就是文件后缀名的作用。
不同的文件后缀名是不同的,如果.java文件用图片软件打开,会出现乱码,但是呢?当你把.java后缀改为.mp4,这时依旧可以使用文本编辑器打开,同时也能正常查看。
关于文件删除的思考
如果文件夹里有文件或者文件夹使用delete是删除不了的,会返回false。
delete()可以删除一个文件或者一个空文件夹。
如何删除一个非空文件夹,包括里面所有文件以及文件夹呢?
递归查找文件夹下所有内容
遍历一个文件下所有的子文件包括文件夹
1. 遍历指定的文件夹方法