File类概述
java.io.File
类是文件和目录路径名的抽象表示形式。java把电脑中的文件和目录封装成了一个File
类,我们可以使用File
类对文件和文件夹进行操作:
- 创建一个文件或文件夹
- 删除一个文件或文件夹
- 获取一个文件或文件夹
- 判断一个文件或文件夹
- 对文件夹进行遍历
- 获取文件的大小
File
类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法。在File
类中,有三个重要概念:
file
:文件directory
:文件夹/目录path
:路径
File类的静态成员变量
静态成员变量 | 说明 |
---|---|
File.pathSeparator |
与系统有关的路径分隔符,为了方便表示为字符串 |
File.pathSeparatorChar |
与系统有关的路径分隔符 |
File.separator |
与系统有关的默认名称分隔符,为了方便表示为字符串 |
File.separatorChar |
与路径有关的路径分隔符 |
- 默认情况下,windows系统的默认路径分隔符为
;
,linux系统默认路径分隔符为:
。 - 默认情况下,windows系统的默认名称分隔符为
\
,linux系统默认名称分隔符为/
。
绝对路径和相对路径
路径不区分大小写,可以分为两种路径:绝对路径和相对路径
- 绝对路径:是一个完整的路径,以盘符开始的路径。
- 相对路径:是一个简化的路径,相对于当前项目的根目录,如果使用当前项目的根目录,则路径可以简化。
File类的构造方法
File(String pathname)
:通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。参数 说明 String pathname
String pathname
:字符串的路径名称
路径可以是以文件结尾或文件夹结尾
路径可以是相对路径或绝对路径
路径可以是存在或不存在
创建File对象,只是把字符串路径封装为File
对象,不考虑路径的真假情况File(String parent, String child)
:根据parent路径名字字符串和child路径名字字符串创建了一个新File实例。参数 说明 String parent, String child
把路径分成了两部分
String parent
:父路径
String child
:子路径
好处:
父路径和子路径,可以单独书写,使用起来灵活;父子路径都可以变化File(File parent, String child)
:根据parent抽象路径和child路径名字字符串创建一个新File实例。参数 说明 File parent, String child
把路径分成了两部分
File parent
:父路径
String child
:子路径
好处:
父路径和子路径,可以单独书写,使用起来灵活;父路径和子路径都可以变化
父路径是File
类型,可以使用File
的方法对路径进行一些操作再使用路径创建对象
File类获取功能
public String getAbsolutePath()
:返回此File的绝对路径名字符串,获取构造方法中传递的路径,无论是绝对路径还是相对路径,返回的都是绝对路径。public String getPath()
:将此File转换为路径名字符串,即获取构造方法中传递的路径,传递的路径是什么样就返回什么样的路径。public String getName()
:返回由此File表示的文件或文件夹(目录)的名称,获取的就是构造方法传递路径的结尾部分(文件,文件夹)public long length()
:返回由此File表示的文件的长度(大小),获取的构造方法指定的文件的大小,以字节为单位。注意,文件夹是没有大小概念的,不能获取文件夹大小。如果构造方法中给出的路径不存在,那么length方法返回零。
File判断功能
public boolean exists()
:此File表示的文件或目录是否实际存在。用于判断构造方法中的路径是否存在,存在则为true,不存在则为false。public boolean isDirectory()
:用于判断构造方法中给定的路径是否以文件夹结尾。如果是返回true,否则返回falsepublic boolean isFile()
:此File
表示的是否为文件,用于判断构造方法中给定的路径是否以文件结尾。如果是返回true,否则返回false。
isDirectory()
和isFile()
使用的前提是路径必须存在,否则都返回false。由于电脑中只有文件或文件夹,因此,这两个方法是互斥的。
File类创建删除功能
public boolean createNewFile()
:当且仅当具有该名称的文件不存在时,创建一个新的空文件。说明 注意事项 当且仅当具有该名称的文件不存在时,创建一个新的空文件。
创建文件的路径和名称在构造方法中给出,
返回值: true,文件不存在,创建文件返回true;
false,文件存在,不会创建此方法只能创建文件,不能创建文件夹,
创建文件的路径必须存在,否则会抛出异常。public boolean delete()
:删除由此File
表示的文件或目录。说明 注意事项 当且仅当具有该名称的文件不存在时,创建一个新的空文件。
创建文件的路径和名称在构造方法中给出,
返回值:
true,文件不存在,创建文件返回true;
false,文件存在,不会创建此方法只能创建文件,不能创建文件夹,
创建文件的路径必须存在,否则会抛出异常。public boolean mkdir()
:创建由此File
表示的目录。说明 注意事项 创建文件夹的路径和名称在构造方法中给出,
返回值:
true,文件夹不存在,创建文件夹返回true;
false,文件夹存在,不会创建;构造方法中给出的路径不存在返回false此方法只能创建文件夹,不能创建文件 public boolean mkdirs()
:创建由此File
表示的目录,包括任何必须但不存在的父目录
File类目录的遍历功能
File
类遍历目录(文件夹)的方法有两个:
public String[] list()
:返回一个String
数组,表示该File
目录中的所有子文件或目录。public File[] listFiles()
:返回一个File
数组,表示该File
目录中的所有子文件或目录。说明 list()
和listFiles()
遍历的是构造方法中给出的目录,
如果构造方法给出的目录的路径不存在,会抛出空指针异常。
如果构造方法给出的路径不是一个目录,也会抛出空指针异常。