Java File类

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,否则返回false

  • public 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()遍历的是构造方法中给出的目录,
    如果构造方法给出的目录的路径不存在,会抛出空指针异常。
    如果构造方法给出的路径不是一个目录,也会抛出空指针异常。