模块 java.base
 java.io

类 File

java.lang.Object
java.io.File
所有已实现的接口:
Serializable , Comparable<File>

public class File extends Object implements Serializable , Comparable <File >
文件和目录路径名的抽象表示。

用户界面和操作系统使用依赖于系统的pathname strings来命名文件和目录。此类呈现分层路径名的抽象的、系统独立的视图。 abstract pathname 有两个组件:

  1. 一个可选的系统相关的 prefix 字符串,例如磁盘驱动器说明符,UNIX 根目录的 "/" 或 Microsoft Windows UNC 路径名的 "\\\\",以及
  2. 零个或多个字符串 names 的序列。
抽象路径名中的第一个名称可能是目录名,或者在 Microsoft Windows UNC 路径名的情况下,是主机名。抽象路径名中的每个后续名称都表示一个目录;姓氏可以表示目录或文件。 empty 抽象路径名没有前缀和空名称序列。

路径名字符串与抽象路径名之间的转换本质上是系统相关的。当抽象路径名转换为路径名字符串时,每个名称与下一个名称由默认值 separator character 的单个副本分隔。默认名称分隔符由系统属性 file.separator 定义,并在此类的公共静态字段 separator separatorChar 中可用。当路径名字符串转换为抽象路径名时,其中的名称可能由默认名称分隔符或底层系统支持的任何其他名称分隔符分隔。

路径名,无论是抽象形式还是字符串形式,都可以是 absoluterelative 。绝对路径名是完整的,因为不需要其他信息来定位它所表示的文件。相反,相对路径名必须根据从其他路径名中获取的信息来解释。默认情况下,java.io 包中的类始终根据当前用户目录解析相对路径名。该目录由系统属性 user.dir 命名,通常是调用 Java 虚拟机的目录。

抽象路径名的parent可以通过调用此类的getParent() 方法获得,由路径名的前缀和路径名名称序列中除最后一个之外的每个名称组成。每个目录的绝对路径名都是任何 File 对象的祖先,其绝对抽象路径名以目录的绝对路径名开头。例如,抽象路径名 "/usr" 表示的目录是路径名 "/usr/local/bin" 表示的目录的祖先。

前缀概念用于处理 UNIX 平台上的根目录,以及 Microsoft Windows 平台上的驱动器说明符、根目录和 UNC 路径名,如下所示:

  • 对于 UNIX 平台,绝对路径名的前缀始终是 "/" 。相对路径名没有前缀。表示根目录的抽象路径名具有前缀 "/" 和一个空名称序列。
  • 对于 Microsoft Windows 平台,包含驱动器说明符的路径名前缀由驱动器号和后跟 ":" 组成,如果路径名是绝对路径,则可能后跟 "\\"。 UNC 路径名的前缀是 "\\\\" ;主机名和共享名是名称序列中的前两个名称。未指定驱动器的相对路径名没有前缀。

此类的实例可能表示也可能不表示实际的文件系统对象,例如文件或目录。如果它确实表示这样一个对象,那么该对象驻留在分割.分区是文件系统存储的特定于操作系统的部分。单个存储设备(例如物理磁盘驱动器、闪存、CD-ROM)可能包含多个分区。该对象(如果有的话)将驻留在分区 named 上,由该路径名的绝对形式的某个祖先创建。

文件系统可以对实际文件系统对象的某些操作实现限制,例如读取、写入和执行。这些限制统称为访问权限.文件系统可能对单个对象具有多组访问权限。例如,一组可能适用于对象的所有者,另一个可能适用于所有其他用户。对象的访问权限可能会导致此类中的某些方法失败。

File 类的实例是不可变的;也就是说,一旦创建,由 File 对象表示的抽象路径名将永远不会改变。

java.nio.file 包的互操作性

java.nio.file 包定义了 Java 虚拟机访问文件、文件属性和文件系统的接口和类。此 API 可用于克服 java.io.File 类的许多限制。 toPath 方法可用于获取 Path ,它使用由 File 对象表示的抽象路径来定位文件。生成的 Path 可与 Files 类一起使用,以提供对其他文件操作、文件属性和 I/O 异常的更有效和更广泛的访问,以帮助在文件操作失败时诊断错误。

自从:
1.0
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final String
    系统相关的路径分隔符,为方便起见表示为字符串。
    static final char
    系统相关的路径分隔符。
    static final String
    系统相关的默认名称分隔符,为方便起见表示为字符串。
    static final char
    系统相关的默认名称分隔符。
  • 构造方法总结

    构造方法
    构造方法
    描述
    File(File parent, String child)
    从父抽象路径名和子路径名字符串创建一个新的 File 实例。
    File(String pathname)
    通过将给定的路径名字符串转换为抽象路径名来创建一个新的 File 实例。
    File(String parent, String child)
    从父路径名字符串和子路径名字符串创建一个新的 File 实例。
    File(URI uri)
    通过将给定的 file: URI 转换为抽象路径名来创建一个新的 File 实例。
  • 方法总结

    修饰符和类型
    方法
    描述
    boolean
    测试应用程序是否可以执行此抽象路径名表示的文件。
    boolean
    测试应用程序是否可以读取此抽象路径名表示的文件。
    boolean
    测试应用程序是否可以修改此抽象路径名表示的文件。
    int
    compareTo(File pathname)
    按字典顺序比较两个抽象路径名。
    boolean
    当且仅当具有此名称的文件尚不存在时,以原子方式创建一个以此抽象路径名命名的新空文件。
    static File
    createTempFile(String prefix, String suffix)
    在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
    static File
    createTempFile(String prefix, String suffix, File directory)
    在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
    boolean
    删除此抽象路径名表示的文件或目录。
    void
    请求在虚拟机终止时删除此抽象路径名表示的文件或目录。
    boolean
    equals(Object obj)
    测试此抽象路径名是否与给定对象相等。
    boolean
    测试此抽象路径名表示的文件或目录是否存在。
    返回此抽象路径名的绝对形式。
    返回此抽象路径名的绝对路径名字符串。
    返回此抽象路径名的规范形式。
    返回此抽象路径名的规范路径名字符串。
    long
    通过此抽象路径名返回分区 named 中未分配的字节数。
    返回此抽象路径名表示的文件或目录的名称。
    返回此抽象路径名的父目录的路径名字符串,如果此路径名未指定父目录,则返回 null
    返回此抽象路径名的父目录的抽象路径名,如果此路径名未指定父目录,则返回 null
    将此抽象路径名转换为路径名字符串。
    long
    通过此抽象路径名返回分区 named 的大小。
    long
    通过此抽象路径名返回分区 named 上此虚拟机可用的字节数。
    int
    计算此抽象路径名的哈希码。
    boolean
    测试此抽象路径名是否是绝对的。
    boolean
    测试此抽象路径名表示的文件是否为目录。
    boolean
    测试此抽象路径名表示的文件是否为普通文件。
    boolean
    测试以此抽象路径名命名的文件是否为隐藏文件。
    long
    返回上次修改此抽象路径名表示的文件的时间。
    long
    返回此抽象路径名表示的文件的长度。
    list()
    返回一个字符串数组,命名此抽象路径名表示的目录中的文件和目录。
    返回一个字符串数组,命名此抽象路径名表示的目录中满足指定过滤器的文件和目录。
    File[]
    返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。
    File[]
    返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
    File[]
    返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
    static File[]
    列出可用的文件系统根目录。
    boolean
    创建以此抽象路径名命名的目录。
    boolean
    创建以此抽象路径名命名的目录,包括任何必需但不存在的父目录。
    boolean
    renameTo(File dest)
    重命名此抽象路径名表示的文件。
    boolean
    setExecutable(boolean executable)
    设置所有者对此抽象路径名的执行权限的便捷方法。
    boolean
    setExecutable(boolean executable, boolean ownerOnly)
    设置所有者或每个人对此抽象路径名的执行权限。
    boolean
    setLastModified(long time)
    设置以此抽象路径名命名的文件或目录的最后修改时间。
    boolean
    setReadable(boolean readable)
    设置所有者对此抽象路径名的读取权限的便捷方法。
    boolean
    setReadable(boolean readable, boolean ownerOnly)
    设置所有者或所有人对此抽象路径名的读取权限。
    boolean
    标记由此抽象路径名命名的文件或目录,以便只允许读取操作。
    boolean
    setWritable(boolean writable)
    设置所有者对此抽象路径名的写权限的便捷方法。
    boolean
    setWritable(boolean writable, boolean ownerOnly)
    设置所有者或每个人对此抽象路径名的写权限。
    返回从此抽象路径构造的 java.nio.file.Path 对象。
    返回此抽象路径名的路径名字符串。
    构造一个表示此抽象路径名的 file: URI。
    已弃用。
    此方法不会自动转义 URL 中的非法字符。

    在类 java.lang.Object 中声明的方法

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 字段详细信息

    • separatorChar

      public static final char separatorChar
      系统相关的默认名称分隔符。此字段初始化为包含系统属性值的第一个字符 file.separator 。在 UNIX 系统上,该字段的值为 '/';在 Microsoft Windows 系统上它是 '\\'
      参见:
    • separator

      public static final String  separator
      系统相关的默认名称分隔符,为方便起见表示为字符串。该字符串包含单个字符,即 separatorChar
    • pathSeparatorChar

      public static final char pathSeparatorChar
      系统相关的路径分隔符。此字段初始化为包含系统属性值的第一个字符 path.separator 。此字符用于分隔以 path list 形式给出的文件序列中的文件名。在 UNIX 系统上,这个字符是 ':' ;在 Microsoft Windows 系统上它是 ';'
      参见:
    • pathSeparator

      public static final String  pathSeparator
      系统相关的路径分隔符,为方便起见表示为字符串。该字符串包含单个字符,即 pathSeparatorChar
  • 构造方法详细信息

    • 文件

      public File(String  pathname)
      通过将给定的路径名字符串转换为抽象路径名来创建一个新的 File 实例。如果给定的字符串是空字符串,则结果是空的抽象路径名。
      参数:
      pathname - 路径名字符串
      抛出:
      NullPointerException - 如果 pathname 参数是 null
    • 文件

      public File(String  parent, String  child)
      从父路径名字符串和子路径名字符串创建一个新的 File 实例。

      如果 parentnull,则创建新的 File 实例就像通过在给定的 child 路径名字符串上调用单参数 File 构造函数一样。

      否则,parent 路径名字符串用于表示目录,child 路径名字符串用于表示目录或文件。如果 child 路径名字符串是绝对的,则它会以系统相关的方式转换为相对路径名。如果 parent 是空字符串,则通过将 child 转换为抽象路径名并将结果解析为依赖于系统的默认目录来创建新的 File 实例。否则,每个路径名字符串都将转换为抽象路径名,并且子抽象路径名将针对父级进行解析。

      参数:
      parent - 父路径名字符串
      child - 子路径名字符串
      抛出:
      NullPointerException - 如果 childnull
    • File

      public File(File  parent, String  child)
      从父抽象路径名和子路径名字符串创建一个新的 File 实例。

      如果 parentnull,则创建新的 File 实例就像通过在给定的 child 路径名字符串上调用单参数 File 构造函数一样。

      否则,parent 抽象路径名被用来表示目录,child 路径名字符串被用来表示目录或文件。如果 child 路径名字符串是绝对的,则它会以系统相关的方式转换为相对路径名。如果 parent 是空的抽象路径名,则通过将 child 转换为抽象路径名并将结果解析为依赖于系统的默认目录来创建新的 File 实例。否则,每个路径名字符串都将转换为抽象路径名,并且子抽象路径名将针对父级进行解析。

      参数:
      parent - 父抽象路径名
      child - 子路径名字符串
      抛出:
      NullPointerException - 如果 childnull
    • File

      public File(URI  uri)
      通过将给定的 file: URI 转换为抽象路径名来创建一个新的 File 实例。

      file: URI 的确切形式是系统相关的,因此此构造函数执行的转换也是系统相关的。

      对于给定的抽象路径名f保证

      new File(  f.toURI()).equals(  f.getAbsoluteFile())
      只要原始抽象路径名、URI 和新抽象路径名都在同一 Java 虚拟机(可能是不同的调用)中创建。但是,当在一个操作系统的虚拟机中创建的 file: URI 被转换为不同操作系统的虚拟机中的抽象路径名时,这种关系通常不成立。
      参数:
      uri - 一个绝对的分层 URI,其方案等于 "file",一个非空路径组件,以及未定义的权限、查询和片段组件
      抛出:
      NullPointerException - 如果 urinull
      IllegalArgumentException - 如果参数的前提条件不成立
      自从:
      1.4
      参见:
  • 方法详情

    • getName

      public String  getName()
      返回此抽象路径名表示的文件或目录的名称。这只是路径名名称序列中的最后一个名称。如果路径名的名称序列为空,则返回空字符串。
      返回:
      此抽象路径名表示的文件或目录的名称,如果此路径名的名称序列为空,则为空字符串
    • getParent

      public String  getParent()
      返回此抽象路径名的父目录的路径名字符串,如果此路径名未指定父目录,则返回 null

      抽象路径名的 parent 由路径名的前缀(如果有)和路径名名称序列中除最后一个之外的每个名称组成。如果名称序列为空,则路径名不会命名父目录。

      返回:
      以此抽象路径名命名的父目录的路径名字符串,如果此路径名未指定父目录,则为 null
    • getParentFile

      public File  getParentFile()
      返回此抽象路径名的父目录的抽象路径名,如果此路径名未指定父目录,则返回 null

      抽象路径名的 parent 由路径名的前缀(如果有)和路径名名称序列中除最后一个之外的每个名称组成。如果名称序列为空,则路径名不会命名父目录。

      返回:
      此抽象路径名命名的父目录的抽象路径名,如果此路径名未指定父目录,则为 null
      自从:
      1.2
    • getPath

      public String  getPath()
      将此抽象路径名转换为路径名字符串。生成的字符串使用 default name-separator character 分隔名称序列中的名称。
      返回:
      此抽象路径名的字符串形式
    • isAbsolute

      public boolean isAbsolute()
      测试此抽象路径名是否是绝对的。绝对路径名的定义是系统相关的。在 UNIX 系统上,如果前缀为 "/" ,则路径名是绝对的。在 Microsoft Windows 系统上,如果路径名的前缀是驱动器说明符后跟 "\\",或者如果它的前缀是 "\\\\",则路径名是绝对的。
      返回:
      true 如果此抽象路径名是绝对的,false 否则
    • getAbsolutePath

      public String  getAbsolutePath()
      返回此抽象路径名的绝对路径名字符串。

      如果此抽象路径名已经是绝对路径名,则路径名字符串就像由 getPath() 方法一样简单地返回。如果此抽象路径名是空抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 命名。否则,此路径名将以系统相关的方式解析。在 UNIX 系统上,相对路径名通过根据当前用户目录解析而成为绝对路径名。在 Microsoft Windows 系统上,通过将相对路径名解析为由路径名命名的驱动器的当前目录(如果有的话),从而使相对路径名成为绝对路径名;如果不是,则根据当前用户目录进行解析。

      返回:
      表示与此抽象路径名相同的文件或目录的绝对路径名字符串
      抛出:
      SecurityException - 如果无法访问所需的系统属性值。
      参见:
    • getAbsoluteFile

      public File  getAbsoluteFile()
      返回此抽象路径名的绝对形式。相当于 new File(this.getAbsolutePath())
      返回:
      表示与此抽象路径名相同的文件或目录的绝对抽象路径名
      抛出:
      SecurityException - 如果无法访问所需的系统属性值。
      自从:
      1.2
    • getCanonicalPath

      public String  getCanonicalPath() throws IOException
      返回此抽象路径名的规范路径名字符串。

      规范路径名既是绝对的又是唯一的。规范形式的精确定义是系统相关的。如有必要,此方法首先将此路径名转换为绝对形式,就像通过调用 getAbsolutePath() 方法一样,然后以系统相关的方式将其映射为其唯一形式。这通常涉及从路径名中删除冗余名称(例如 ".""..")、解析符号链接(在 UNIX 平台上)以及将驱动器号转换为标准大小写(在 Microsoft Windows 平台上)。

      每个表示现有文件或目录的路径名都具有唯一的规范形式。每个表示不存在的文件或目录的路径名也具有唯一的规范形式。不存在的文件或目录的路径名的规范形式可能与创建文件或目录后相同路径名的规范形式不同。类似地,现有文件或目录的路径名的规范形式可能与删除文件或目录后相同路径名的规范形式不同。

      返回:
      规范路径名字符串,表示与此抽象路径名相同的文件或目录
      抛出:
      IOException - 如果发生 I/O 错误,这是可能的,因为规范路径名的构造可能需要文件系统查询
      SecurityException - 如果无法访问所需的系统属性值,或者安全管理器存在且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒绝对文件的读取访问
      自从:
      1.1
      参见:
    • getCanonicalFile

      public File  getCanonicalFile() throws IOException
      返回此抽象路径名的规范形式。相当于 new File(this.getCanonicalPath())
      返回:
      规范路径名字符串,表示与此抽象路径名相同的文件或目录
      抛出:
      IOException - 如果发生 I/O 错误,这是可能的,因为规范路径名的构造可能需要文件系统查询
      SecurityException - 如果无法访问所需的系统属性值,或者安全管理器存在且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒绝对文件的读取访问
      自从:
      1.2
      参见:
    • toURL

      @Deprecated public URL  toURL() throws MalformedURLException
      已弃用。
      此方法不会自动转义 URL 中的非法字符。建议新代码将抽象路径名转换为 URL,首先通过 toURI 方法将其转换为 URI,然后通过 URI.toURL 方法将 URI 转换为 URL。
      将此抽象路径名转换为 file: URL。 URL 的确切形式取决于系统。如果可以确定这个抽象路径名表示的文件是一个目录,那么生成的 URL 将以斜杠结尾。
      返回:
      表示等效文件 URL 的 URL 对象
      抛出:
      MalformedURLException - 如果路径无法解析为 URL
      自从:
      1.2
      参见:
    • toURI

      public URI  toURI()
      构造一个表示此抽象路径名的 file: URI。

      URI 的确切形式取决于系统。如果可以确定这个抽象路径名表示的文件是一个目录,那么生成的 URI 将以斜杠结尾。

      对于给定的抽象路径名f, 可以保证

      new File(  f.toURI()).equals(  f.getAbsoluteFile())
      只要原始抽象路径名、URI 和新抽象路径名都在同一 Java 虚拟机(可能是不同的调用)中创建。然而,由于抽象路径名的系统依赖性,当在一个操作系统的虚拟机中创建的 file: URI 被转换为不同操作系统的虚拟机中的抽象路径名时,这种关系通常不成立。

      请注意,当此抽象路径名表示 UNC 路径名时,UNC 的所有组件(包括服务名称组件)都在 URI 路径中编码。权限组件未定义,这意味着它表示为 nullPath 类定义了 toUri 方法,以在生成的 URI 的授权组件中对服务名称进行编码。 toPath 方法可用于获取表示此抽象路径名的 Path

      返回:
      方案等于 "file" 的绝对分层 URI,表示此抽象路径名的路径,以及未定义的权限、查询和片段组件
      抛出:
      SecurityException - 如果无法访问所需的系统属性值。
      自从:
      1.4
      参见:
    • canRead

      public boolean canRead()
      测试应用程序是否可以读取此抽象路径名表示的文件。在某些平台上,可以使用允许它读取标记为不可读的文件的特殊权限来启动 Java 虚拟机。因此,即使该文件没有读取权限,此方法也可能返回 true
      返回:
      true 当且仅当此抽象路径名指定的文件存在时 and 可以被应用程序读取; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问
    • canWrite

      public boolean canWrite()
      测试应用程序是否可以修改此抽象路径名表示的文件。在某些平台上,可以使用允许它修改标记为只读的文件的特殊权限来启动 Java 虚拟机。因此,即使文件被标记为只读,此方法也可能返回 true
      返回:
      true 当且仅当文件系统实际包含此抽象路径名表示的文件时 and 允许应用程序写入该文件; false否则。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
    • exists

      public boolean exists()
      测试此抽象路径名表示的文件或目录是否存在。
      返回:
      true 当且仅当此抽象路径名表示的文件或目录存在时; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件或目录的读取访问
    • isDirectory

      public boolean isDirectory()
      测试此抽象路径名表示的文件是否为目录。

      如果需要区分 I/O 异常和文件不是目录的情况,或者同时需要同一文件的多个属性,则可以使用Files.readAttributes 方法。

      返回:
      true 当且仅当此抽象路径名表示的文件存在时 and 是一个目录; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问
    • isFile

      public boolean isFile()
      测试此抽象路径名表示的文件是否为普通文件。如果文件不是目录,并且满足其他系统相关条件,则文件为 normal。 Java 应用程序创建的任何非目录文件都保证是普通文件。

      如果需要区分 I/O 异常和文件不是正常文件的情况,或者同时需要同一文件的多个属性,则可以使用Files.readAttributes 方法。

      返回:
      true 当且仅当此抽象路径名表示的文件存在时 and 是普通文件; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问
    • isHidden

      public boolean isHidden()
      测试以此抽象路径名命名的文件是否为隐藏文件。 hidden 的确切定义取决于系统。在 UNIX 系统上,如果文件名以句点字符 ('.') 开头,则该文件被认为是隐藏的。在 Microsoft Windows 系统上,如果一个文件在文件系统中被标记为隐藏,则该文件被认为是隐藏的。
      返回:
      true 当且仅当此抽象路径名表示的文件根据底层平台的约定隐藏时
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问
      自从:
      1.2
    • lastModified

      public long lastModified()
      返回上次修改此抽象路径名表示的文件的时间。
      API 注意:
      虽然返回值的时间单位是毫秒,但值的粒度取决于底层文件系统,可能更大。例如,一些文件系统使用以秒为单位的时间戳。

      如果需要区分 I/O 异常与返回 0L 的情况,或者同时需要同一文件的多个属性,或者需要上次访问时间或创建时间,则可以使用 Files.readAttributes 方法。但是,如果只需要上次修改的时间,则可以改用 Files.getLastModifiedTime 方法。

      返回:
      long 值表示文件上次修改的时间,以纪元(格林威治标准时间 00:00:00,1970 年 1 月 1 日)以来的毫秒数为单位,如果文件不存在或发生 I/O 错误,则为 0L。该值可能是负数,表示纪元之前的毫秒数
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问
    • length

      public long length()
      返回此抽象路径名表示的文件的长度。如果此路径名表示目录,则返回值未指定。

      如果需要区分 I/O 异常与返回 0L 的情况,或者同时需要同一文件的多个属性,则可以使用 Files.readAttributes 方法。

      返回:
      此抽象路径名表示的文件的长度(以字节为单位),如果文件不存在,则为 0L。某些操作系统可能会为表示系统相关实体(例如设备或管道)的路径名返回 0L
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问
    • createNewFile

      public boolean createNewFile() throws IOException
      当且仅当具有此名称的文件尚不存在时,以原子方式创建一个以此抽象路径名命名的新空文件。检查文件是否存在以及如果文件不存在则创建文件是单个操作,对于可能影响该文件的所有其他文件系统活动而言,该操作是原子的。

      注意:此方法应not用于文件锁定,因为生成的协议不能可靠地工作。应该改用 FileLock 设施。

      返回:
      true 如果指定的文件不存在并且已成功创建; false 如果命名文件已经存在
      抛出:
      IOException - 如果发生 I/O 错误
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
      自从:
      1.2
    • delete

      public boolean delete()
      删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能被删除。

      请注意,Files 类定义了 delete 方法以在无法删除文件时抛出 IOException 。这对于错误报告和诊断无法删除文件的原因很有用。

      返回:
      true当且仅当文件或目录被成功删除; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkDelete(java.lang.String) 方法拒绝对文件的删除访问
    • deleteOnExit

      public void deleteOnExit()
      请求在虚拟机终止时删除此抽象路径名表示的文件或目录。文件(或目录)的删除顺序与它们注册的顺序相反。调用此方法删除已注册删除的文件或目录无效。按照 Java 语言规范的定义,只会在虚拟机正常终止时尝试删除。

      一旦请求删除,就无法取消该请求。因此,应谨慎使用此方法。

      注意:此方法应not用于文件锁定,因为生成的协议不能可靠地工作。应该改用 FileLock 设施。

      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkDelete(java.lang.String) 方法拒绝对文件的删除访问
      自从:
      1.2
      参见:
    • list

      public String [] list()
      返回一个字符串数组,命名此抽象路径名表示的目录中的文件和目录。

      如果此抽象路径名不表示目录,则此方法返回 null 。否则返回一个字符串数组,一个对应于目录中的每个文件或目录。表示目录本身和目录的父目录的名称不包含在结果中。每个字符串都是一个文件名而不是完整的路径。

      不能保证结果数组中的名称字符串会以任何特定顺序出现;尤其不能保证它们按字母顺序出现。

      请注意,Files 类定义了 newDirectoryStream 方法来打开目录并遍历目录中文件的名称。这在处理非常大的目录时可能会使用更少的资源,并且在处理远程目录时可能会更快地响应。

      返回:
      命名此抽象路径名表示的目录中的文件和目录的字符串数组。如果目录为空,数组将为空。如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(String) 方法拒绝对目录的读取访问
    • list

      public String [] list(FilenameFilter  filter)
      返回一个字符串数组,命名此抽象路径名表示的目录中满足指定过滤器的文件和目录。此方法的行为与list() 方法的行为相同,只是返回数组中的字符串必须满足过滤器。如果给定的 filternull 那么所有的名字都会被接受。否则,当且仅当过滤器的 FilenameFilter.accept(File, String) 方法在此抽象路径名和它表示的目录中的文件或目录的名称上调用时,名称满足过滤器当且仅当值 true 的结果。
      参数:
      filter - 文件名过滤器
      返回:
      一个字符串数组,命名由给定 filter 接受的此抽象路径名表示的目录中的文件和目录。如果目录为空或过滤器未接受任何名称,则数组将为空。如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(String) 方法拒绝对目录的读取访问
      参见:
    • listFiles

      public File [] listFiles()
      返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。

      如果此抽象路径名不表示目录,则此方法返回 null 。否则返回一个 File 对象数组,目录中的每个文件或目录对应一个对象。表示目录本身和目录的父目录的路径名不包含在结果中。每个生成的抽象路径名都是使用 File(File, String) 构造函数从这个抽象路径名构造的。因此,如果这个路径名是绝对的,那么每个结果路径名都是绝对的;如果此路径名是相对的,则每个生成的路径名都将相对于同一目录。

      不能保证结果数组中的名称字符串会以任何特定顺序出现;尤其不能保证它们按字母顺序出现。

      请注意,Files 类定义了 newDirectoryStream 方法来打开目录并遍历目录中文件的名称。在处理非常大的目录时,这可能会使用更少的资源。

      返回:
      一组抽象路径名,表示此抽象路径名表示的目录中的文件和目录。如果目录为空,数组将为空。如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(String) 方法拒绝对目录的读取访问
      自从:
      1.2
    • listFiles

      public File [] listFiles(FilenameFilter  filter)
      返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。此方法的行为与 listFiles() 方法的行为相同,只是返回数组中的路径名必须满足过滤器。如果给定的 filternull 则接受所有路径名。否则,当且仅当过滤器的 FilenameFilter.accept(File, String) 方法在此抽象路径名和它表示的目录中的文件或目录的名称上调用时,路径名满足过滤器当且仅当值 true 的结果。
      参数:
      filter - 文件名过滤器
      返回:
      一组抽象路径名,表示此抽象路径名表示的目录中的文件和目录。如果目录为空,数组将为空。如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(String) 方法拒绝对目录的读取访问
      自从:
      1.2
      参见:
    • listFiles

      public File [] listFiles(FileFilter  filter)
      返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。此方法的行为与 listFiles() 方法的行为相同,只是返回数组中的路径名必须满足过滤器。如果给定的 filternull 则接受所有路径名。否则,当且仅当在路径名上调用过滤器的 FileFilter.accept(File) 方法时产生值 true 时,路径名才满足过滤器。
      参数:
      filter - 文件过滤器
      返回:
      一组抽象路径名,表示此抽象路径名表示的目录中的文件和目录。如果目录为空,数组将为空。如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(String) 方法拒绝对目录的读取访问
      自从:
      1.2
      参见:
    • mkdir

      public boolean mkdir()
      创建以此抽象路径名命名的目录。
      返回:
      true 当且仅当目录已创建; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法不允许创建命名目录
    • mkdirs

      public boolean mkdirs()
      创建以此抽象路径名命名的目录,包括任何必需但不存在的父目录。请注意,如果此操作失败,它可能已成功创建一些必要的父目录。
      返回:
      true 当且仅当创建了目录,以及所有必要的父目录; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkRead(java.lang.String) 方法不允许验证指定目录和所有必要的父目录是否存在;或者如果 SecurityManager.checkWrite(java.lang.String) 方法不允许创建命名目录和所有必要的父目录
    • renameTo

      public boolean renameTo(File  dest)
      重命名此抽象路径名表示的文件。

      此方法行为的许多方面本质上是依赖于平台的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,如果文件具有目标抽象路径名,则它可能不会成功已经存在。应始终检查返回值以确保重命名操作成功。由于 File 的实例是不可变的,因此不会更改此 File 对象以命名目标文件或目录。

      请注意,Files 类定义了 move 方法以独立于平台的方式移动或重命名文件。

      参数:
      dest - 指定文件的新抽象路径名
      返回:
      true 当且仅当重命名成功时; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对旧路径名或新路径名的写访问
      NullPointerException - 如果参数 destnull
    • setLastModified

      public boolean setLastModified(long time)
      设置以此抽象路径名命名的文件或目录的最后修改时间。

      所有平台都支持精确到秒的文件修改时间,但有些平台提供的精度更高。该参数将被截断以适应支持的精度。如果操作成功并且没有对文件进行任何干预操作,则 lastModified() 方法的下一次调用将返回传递给此方法的(可能被截断的)time 参数。

      参数:
      time - 新的最后修改时间,自纪元(00:00:00 GMT,1970 年 1 月 1 日)以来以毫秒为单位测量
      返回:
      true 当且仅当操作成功时; false否则
      抛出:
      IllegalArgumentException - 如果参数为负
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对命名文件的写访问
      自从:
      1.2
    • setReadOnly

      public boolean setReadOnly()
      标记由此抽象路径名命名的文件或目录,以便只允许读取操作。调用此方法后,文件或目录将不会更改,直到它被删除或标记为允许写访问。在某些平台上,可以使用允许它修改标记为只读的文件的特殊权限来启动 Java 虚拟机。是否可以删除只读文件或目录取决于底层系统。
      返回:
      true 当且仅当操作成功时; false否则
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对命名文件的写访问
      自从:
      1.2
    • setWritable

      public boolean setWritable(boolean writable, boolean ownerOnly)
      设置所有者或每个人对此抽象路径名的写权限。在某些平台上,可以使用允许它修改不允许写操作的文件的特殊权限来启动 Java 虚拟机。

      Files 类定义了对文件属性(包括文件权限)进行操作的方法。这可以在需要更精细地操作文件权限时使用。

      参数:
      writable - 如果是 true ,则设置访问权限以允许写操作; if false 禁止写操作
      ownerOnly - 如果是 true ,写权限只适用于所有者的写权限;否则,它适用于所有人。如果底层文件系统无法区分所有者的写权限和其他人的写权限,那么该权限将适用于所有人,而不管这个值。
      返回:
      true 当且仅当操作成功时。如果用户无权更改此抽象路径名的访问权限,则操作将失败。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对命名文件的写访问
      自从:
      1.6
    • setWritable

      public boolean setWritable(boolean writable)
      设置所有者对此抽象路径名的写权限的便捷方法。在某些平台上,可以使用允许它修改不允许写操作的文件的特殊权限来启动 Java 虚拟机。

      调用 file.setWritable(arg) 形式的方法的行为与调用完全相同

      
         file.setWritable(arg, true)
        
      参数:
      writable - 如果是 true ,则设置访问权限以允许写操作; if false 禁止写操作
      返回:
      true 当且仅当操作成功时。如果用户无权更改此抽象路径名的访问权限,则操作将失败。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
      自从:
      1.6
    • setReadable

      public boolean setReadable(boolean readable, boolean ownerOnly)
      设置所有者或所有人对此抽象路径名的读取权限。在某些平台上,可以使用允许它读取标记为不可读的文件的特殊权限来启动 Java 虚拟机。

      Files 类定义了对文件属性(包括文件权限)进行操作的方法。这可以在需要更精细地操作文件权限时使用。

      参数:
      readable - 如果是 true ,则设置访问权限以允许读取操作; if false 禁止读取操作
      ownerOnly - 如果为 true ,则读取权限仅适用于所有者的读取权限;否则,它适用于所有人。如果底层文件系统无法区分所有者的读取权限与其他人的读取权限,那么该权限将适用于所有人,而不管这个值。
      返回:
      true 当且仅当操作成功时。如果用户无权更改此抽象路径名的访问权限,则操作将失败。如果 readablefalse 且底层文件系统未实现读取权限,则操作将失败。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
      自从:
      1.6
    • setReadable

      public boolean setReadable(boolean readable)
      设置所有者对此抽象路径名的读取权限的便捷方法。在某些平台上,可以使用允许它读取标记为不可读的文件的特殊权限来启动 Java 虚拟机。

      file.setReadable(arg) 形式的方法的调用与调用的行为完全相同

      
         file.setReadable(arg, true)
        
      参数:
      readable - 如果是 true ,则设置访问权限以允许读取操作; if false 禁止读取操作
      返回:
      true 当且仅当操作成功时。如果用户无权更改此抽象路径名的访问权限,则操作将失败。如果 readablefalse 且底层文件系统未实现读取权限,则操作将失败。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
      自从:
      1.6
    • setExecutable

      public boolean setExecutable(boolean executable, boolean ownerOnly)
      设置所有者或每个人对此抽象路径名的执行权限。在某些平台上,可以使用允许它执行未标记为可执行文件的特殊权限来启动 Java 虚拟机。

      Files 类定义了对文件属性(包括文件权限)进行操作的方法。这可以在需要更精细地操作文件权限时使用。

      参数:
      executable - 如果是 true ,则设置访问权限以允许执行操作; if false 禁止执行操作
      ownerOnly - 如果为 true ,则执行权限仅适用于所有者的执行权限;否则,它适用于所有人。如果底层文件系统无法区分所有者的执行权限与其他人的执行权限,那么该权限将适用于所有人,而不管这个值。
      返回:
      true 当且仅当操作成功时。如果用户无权更改此抽象路径名的访问权限,则操作将失败。如果 executablefalse 并且底层文件系统没有实现执行权限,则操作将失败。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
      自从:
      1.6
    • setExecutable

      public boolean setExecutable(boolean executable)
      设置所有者对此抽象路径名的执行权限的便捷方法。在某些平台上,可以使用允许它执行未标记为可执行文件的特殊权限来启动 Java 虚拟机。

      file.setExcutable(arg) 形式的方法的调用与调用的行为完全相同

      
         file.setExecutable(arg, true)
        
      参数:
      executable - 如果是 true ,则设置访问权限以允许执行操作; if false 禁止执行操作
      返回:
      true 当且仅当操作成功时。如果用户无权更改此抽象路径名的访问权限,则操作将失败。如果 executablefalse 并且底层文件系统没有实现执行权限,则操作将失败。
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件的写访问
      自从:
      1.6
    • canExecute

      public boolean canExecute()
      测试应用程序是否可以执行此抽象路径名表示的文件。在某些平台上,可以使用允许它执行未标记为可执行文件的特殊权限来启动 Java 虚拟机。因此,即使文件没有执行权限,此方法也可能返回 true
      返回:
      true 当且仅当抽象路径名存在时 and 允许应用程序执行文件
      抛出:
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkExec(java.lang.String) 方法拒绝对文件的执行访问
      自从:
      1.6
    • listRoots

      public static File [] listRoots()
      列出可用的文件系统根目录。

      特定的 Java 平台可能支持零个或多个分层组织的文件系统。每个文件系统都有一个 root 目录,从中可以访问该文件系统中的所有其他文件。例如,Windows 平台对于每个活动驱动器都有一个根目录; UNIX 平台有一个根目录,即 "/" 。可用文件系统根集受各种系统级操作的影响,例如可移动媒体的插入或弹出以及物理或虚拟磁盘驱动器的断开或卸载。

      此方法返回一个 File 对象数组,表示可用文件系统根的根目录。保证本地机器上物理存在的任何文件的规范路径名都将以此方法返回的根之一开始。

      驻留在其他机器上并通过远程文件系统协议(如 SMB 或 NFS)访问的文件的规范路径名可能以也可能不以此方法返回的根之一开头。如果远程文件的路径名在句法上与本地文件的路径名无法区分,那么它将以此方法返回的根之一开始。因此,例如,此方法将返回表示 Windows 平台映射网络驱动器根目录的 File 对象,而此方法不会返回包含 UNC 路径名的 File 对象。

      与此类中的大多数方法不同,此方法不会引发安全异常。如果安全管理器存在并且其 SecurityManager.checkRead(String) 方法拒绝对特定根目录的读取访问,则该目录将不会出现在结果中。

      返回:
      表示可用文件系统根的 File 对象数组,如果无法确定根集,则为 null。如果没有文件系统根,该数组将为空。
      自从:
      1.2
      参见:
    • getTotalSpace

      public long getTotalSpace()
      通过此抽象路径名返回分区 named 的大小。如果分区中的总字节数大于 Long.MAX_VALUE ,则返回 Long.MAX_VALUE
      返回:
      分区的大小(以字节为单位)或 0L 如果此抽象路径名未命名分区或无法获取大小
      抛出:
      SecurityException - 如果已安装安全管理器并且它拒绝 RuntimePermission ("getFileSystemAttributes") 或其 SecurityManager.checkRead(String) 方法拒绝对此抽象路径名命名的文件的读取访问
      自从:
      1.6
      参见:
    • getFreeSpace

      public long getFreeSpace()
      通过此抽象路径名返回分区 named 中未分配的字节数。如果分区中未分配的字节数大于 Long.MAX_VALUE ,则返回 Long.MAX_VALUE

      返回的未分配字节数是一个提示,但不能保证可以使用这些字节中的大部分或任何字节。未分配的字节数最有可能在此调用后立即准确。它可能会因任何外部 I/O 操作而变得不准确,包括在该虚拟机之外的系统上进行的操作。此方法不保证对该文件系统的写入操作会成功。

      返回:
      分区上未分配的字节数或 0L 如果抽象路径名未命名分区或无法获得此数字。该值将小于或等于 getTotalSpace() 返回的文件系统总大小。
      抛出:
      SecurityException - 如果已安装安全管理器并且它拒绝 RuntimePermission ("getFileSystemAttributes") 或其 SecurityManager.checkRead(String) 方法拒绝对此抽象路径名命名的文件的读取访问
      自从:
      1.6
      参见:
    • getUsableSpace

      public long getUsableSpace()
      通过此抽象路径名返回分区 named 上此虚拟机可用的字节数。如果分区中的可用字节数大于 Long.MAX_VALUE ,则返回 Long.MAX_VALUE 。如果可能,此方法会检查写入权限和其他操作系统限制,因此通常会比 getFreeSpace() 更准确地估计实际可以写入多少新数据。

      返回的可用字节数是一个提示,但不能保证可以使用这些字节中的大部分或任何字节。可用字节数很可能在该调用后立即准确。它可能会因任何外部 I/O 操作而变得不准确,包括在该虚拟机之外的系统上进行的操作。此方法不保证对该文件系统的写入操作会成功。

      返回:
      分区上的可用字节数或 0L 如果抽象路径名未命名分区或无法获得此数字。在该信息不可用的系统上,此方法等同于调用 getFreeSpace()
      抛出:
      SecurityException - 如果已安装安全管理器并且它拒绝 RuntimePermission ("getFileSystemAttributes") 或其 SecurityManager.checkRead(String) 方法拒绝对此抽象路径名命名的文件的读取访问
      自从:
      1.6
      参见:
    • createTempFile

      public static File  createTempFile(String  prefix, String  suffix, File  directory) throws IOException

      在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。如果此方法成功返回,则可以保证:

      1. 此方法之前,由返回的抽象路径名表示的文件不存在,并且
      2. 此方法及其任何变体都不会在虚拟机的当前调用中再次返回相同的抽象路径名。
      此方法仅提供临时文件功能的一部分。要安排自动删除由此方法创建的文件,请使用 deleteOnExit() 方法。

      prefix 参数的长度必须至少为三个字符。建议前缀是一个简短、有意义的字符串,例如 "hjb""mail"suffix 参数可能是 null ,在这种情况下将使用后缀 ".tmp"

      要创建新文件,可以首先调整前缀和后缀以适应底层平台的限制。如果前缀太长,它将被截断,但它的前三个字符将始终被保留。如果后缀太长,那么它也会被截断,但如果它以句点字符 ('.') 开头,那么句点和后面的前三个字符将始终保留。完成这些调整后,将通过连接前缀、五个或更多内部生成的字符和后缀来生成新文件的名称。

      如果 directory 参数是 null 则将使用依赖于系统的默认临时文件目录。默认临时文件目录由系统属性 java.io.tmpdir 指定。在 UNIX 系统上,此属性的默认值通常为 "/tmp""/var/tmp";在 Microsoft Windows 系统上,它通常是 "C:\\WINNT\\TEMP"。调用 Java 虚拟机时,可能会为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法使用的临时目录有任何影响。

      如果 directory 参数不是 null 并且它的抽象路径名有效并且表示一个现有的可写目录,那么该文件将在该目录中创建。否则将不会创建文件并抛出 IOException。在任何情况下都不会在 directory 参数指定的位置创建目录。

      参数:
      prefix - 用于生成文件名的前缀字符串;长度必须至少为三个字符
      suffix - 用于生成文件名的后缀字符串;可能是 null ,在这种情况下将使用后缀 ".tmp"
      directory - 要在其中创建文件的目录,如果要使用默认临时文件目录,则为 null
      返回:
      表示新创建的空文件的抽象路径名
      抛出:
      IllegalArgumentException - 如果 prefix 参数包含的字符少于三个
      IOException - 如果无法创建文件
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法不允许创建文件
      自从:
      1.2
    • createTempFile

      public static File  createTempFile(String  prefix, String  suffix) throws IOException
      在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。调用此方法等同于调用 createTempFile(prefix, suffix, null)

      Files.createTempFile 方法提供了一种在临时文件目录中创建空文件的替代方法。通过该方法创建的文件可能对通过该方法创建的文件具有更严格的访问权限,因此可能更适合对安全敏感的应用程序。

      参数:
      prefix - 用于生成文件名的前缀字符串;长度必须至少为三个字符
      suffix - 用于生成文件名的后缀字符串;可能是 null ,在这种情况下将使用后缀 ".tmp"
      返回:
      表示新创建的空文件的抽象路径名
      抛出:
      IllegalArgumentException - 如果 prefix 参数包含的字符少于三个
      IOException - 如果无法创建文件
      SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法不允许创建文件
      自从:
      1.2
      参见:
    • compareTo

      public int compareTo(File  pathname)
      按字典顺序比较两个抽象路径名。此方法定义的顺序取决于底层系统。在 UNIX 系统上,字母大小写在比较路径名时很重要;在 Microsoft Windows 系统上则不是。
      指定者:
      compareTo 在接口 Comparable<File>
      参数:
      pathname - 要与此抽象路径名进行比较的抽象路径名
      返回:
      如果参数等于此抽象路径名,则为零;如果此抽象路径名按字典顺序小于参数,则值小于零;如果此抽象路径名按字典顺序大于参数,则值大于零
      自从:
      1.2
    • equals

      public boolean equals(Object  obj)
      测试此抽象路径名是否与给定对象相等。当且仅当参数不是 null 并且是与此抽象路径名相同的抽象路径名时,才返回 true。两个抽象路径名是否相等取决于底层操作系统。在 UNIX 系统上,字母大小写在比较路径名时很重要;在 Microsoft Windows 系统上则不是。
      重写:
      equals 在类 Object
      API 注意:
      此方法仅测试抽象路径名是否相等;它不访问文件系统并且文件不需要存在。
      参数:
      obj - 要与此抽象路径名进行比较的对象
      返回:
      true 当且仅当对象相同时; false否则
      参见:
    • hashCode

      public int hashCode()
      计算此抽象路径名的哈希码。因为抽象路径名的相等性本质上是系统相关的,所以它们的哈希码的计算也是如此。在 UNIX 系统上,抽象路径名的散列码等于其路径名字符串的散列码与十进制值 1234321 的独占值 or。在Microsoft Windows 系统上,哈希码等于其路径名字符串转换为小写的哈希码与十进制值1234321 的独占or。小写路径名字符串时不考虑locale。
      重写:
      hashCode 在类 Object
      返回:
      此抽象路径名的哈希码
      参见:
    • toString

      public String  toString()
      返回此抽象路径名的路径名字符串。这只是 getPath() 方法返回的字符串。
      重写:
      toString 在类 Object
      返回:
      此抽象路径名的字符串形式
    • toPath

      public Path  toPath()
      返回从此抽象路径构造的 java.nio.file.Path 对象。生成的 Pathdefault-filesystem 相关联。

      此方法的第一次调用就像调用它等同于计算表达式一样:

       FileSystems.getDefault ().getPath (this.getPath ());
       
      此方法的后续调用返回相同的 Path

      如果此抽象路径名是空抽象路径名,则此方法返回可用于访问当前用户目录的Path

      返回:
      一个 Path 从这个抽象路径构造
      抛出:
      InvalidPathException - 如果无法从抽象路径构造 Path 对象(请参阅 FileSystem.getPath
      自从:
      1.7
      参见: