所有类


java.io
类 File

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

public class File
   
   
   
   
   
extends Object
implements Serializable, Comparable<File>

文件和目录路径名的抽象表示形式。

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:

  1. 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名,以及
  2. 零个或更多字符串名称 的序列。
除了最后一个,抽象路径名中的每个名称代表一个目录;最后一个名称既可以代表目录,也可以代表文件。空的 抽象路径名没有前缀和名称序列。

路径名字符串与抽象路径名之间的转换与系统有关。将抽象路径名转换为路径名字符串时,每个名称与下一个名称之间由单个默认分隔符字符 隔开。默认名称分隔符由系统属性 file.separator 定义,也可以从此类的公共静态字段 separatorseparatorChar 中得到。将路径名字符串转换为抽象路径名时,可以使用默认名称分隔符或者受基础系统支持的其他任何名称分隔符来分隔其中的名称。

无论是抽象路径名还是字符串路径名,都可以是绝对 路径名或相对 路径名。绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

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

  • 对于 UNIX 平台,绝对路径名的前缀始终是 "/"。相对路径名没有前缀。表示根目录的绝对路径名的前缀为 "/" 并且没有名称序列。
  • 对于 Microsoft Windows 平台,包含盘符的路径名的前缀由驱动器名和一个 ":" 组成:如果路径名是绝对路径名,后面可能跟着 "\\"。UNC 路径名的前缀是 "\\\\";主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名无前缀。

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

从以下版本开始:
JDK1.0
另请参见:
序列化表格

字段摘要
static StringpathSeparator
          与系统有关的路径分隔符字符,出于方便考虑,它被表示为一个字符串。
static charpathSeparatorChar
          与系统有关的默认路径分隔符字符。
static Stringseparator
          与系统有关的默认名称分隔符,出于方便考虑,它被表示为一个字符串。
static charseparatorChar
          与系统有关的默认名称分隔符。
 
构造方法摘要
File(File parent, String child)
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
          通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File(String parent, String child)
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
          通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
 
方法摘要
 booleancanRead()
          测试应用程序是否可以读取此抽象路径名表示的文件。
 booleancanWrite()
          测试应用程序是否可以修改此抽象路径名表示的文件。
 intcompareTo(File pathname)
          按字母顺序比较两个抽象路径名。
 booleancreateNewFile()
          当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。
static FilecreateTempFile(String prefix, String suffix)
          在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
static FilecreateTempFile(String prefix, String suffix, File directory)
           在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
 booleandelete()
          删除此抽象路径名表示的文件或目录。
 voiddeleteOnExit()
          在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
 booleanequals(Object obj)
          测试此抽象路径名与给定对象是否相等。
 booleanexists()
          测试此抽象路径名表示的文件或目录是否存在。
 FilegetAbsoluteFile()
          返回抽象路径名的绝对路径名形式。
 StringgetAbsolutePath()
          返回抽象路径名的绝对路径名字符串。
 FilegetCanonicalFile()
          返回此抽象路径名的规范形式。
 StringgetCanonicalPath()
          返回抽象路径名的规范路径名字符串。
 StringgetName()
          返回由此抽象路径名表示的文件或目录的名称。
 StringgetParent()
          返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null
 FilegetParentFile()
          返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null
 StringgetPath()
          将此抽象路径名转换为一个路径名字符串。
 inthashCode()
          计算此抽象路径名的哈希码。
 booleanisAbsolute()
          测试此抽象路径名是否为绝对路径名。
 booleanisDirectory()
          测试此抽象路径名表示的文件是否是一个目录。
 booleanisFile()
          测试此抽象路径名表示的文件是否是一个标准文件。
 booleanisHidden()
          测试此抽象路径名指定的文件是否是一个隐藏文件。
 longlastModified()
          返回此抽象路径名表示的文件最后一次被修改的时间。
 longlength()
          返回由此抽象路径名表示的文件的长度。
 String[]list()
          返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。
 String[]list(FilenameFilter filter)
          返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。
 File[]listFiles()
          返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。
 File[]listFiles(FileFilter filter)
          返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。
 File[]listFiles(FilenameFilter filter)
          返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。
static File[]listRoots()
          列出可用的文件系统根目录。
 booleanmkdir()
          创建此抽象路径名指定的目录。
 booleanmkdirs()
          创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。
 booleanrenameTo(File dest)
          重新命名此抽象路径名表示的文件。
 booleansetLastModified(long time)
          设置由此抽象路径名所指定的文件或目录的最后一次修改时间。
 booleansetReadOnly()
          标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。
 StringtoString()
          返回此抽象路径名的路径名字符串。
 URItoURI()
          构造一个表示此抽象路径名的 file: URI。
 URLtoURL()
          将此抽象路径名转换成一个 file: URL。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

字段详细信息

separatorChar

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

另请参见:
System.getProperty(java.lang.String)

separator

public static final String separator
与系统有关的默认名称分隔符,出于方便考虑,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar


pathSeparatorChar

public static final char pathSeparatorChar
与系统有关的默认路径分隔符字符。此字段被初始为包含系统属性 path.separator 的值的第一个字符。此字符用于按照路径列表 给出的文件顺序分隔文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'

另请参见:
System.getProperty(java.lang.String)

pathSeparator

public static final String pathSeparator
与系统有关的路径分隔符字符,出于方便考虑,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar

构造方法详细信息

File

public File(String pathname)
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。如果给定字符串是空字符串,则结果是空的抽象路径名。

参数:
pathname - 路径名字符串
抛出:
NullPointerException - 如果 pathname 参数为 null

File

public File(String parent,
            String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

如果 parentnull,则创建一个新的 File 实例,这与调用单参数 File 方法,以给定 child 路径名字符串作为参数的效果一样。

否则,parent 路径名字符串用于表示目录,而 child 路径名字符串用于表示目录或文件。如果 child 路径名字符串是绝对路径名,则用与系统有关的方式将它转换成一个相对路径名。如果 parent 是空字符串,则新的 File 实例是通过将 child 转换成抽象路径名并根据与系统有关的默认目录来分析结果而创建的。否则,将每个路径名字符串转换成一个抽象路径名,并根据父抽象路径名分析子抽象路径名。

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

File

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

如果 parentnull,则创建一个新的 File 实例,这与调用给定 child 路径名字符串的单参数 File 构造方法的效果一样。

否则,parent 抽象路径名用于表示目录,而 child 路径名字符串用于表示目录或文件。如果 child 路径名字符串是绝对路径名,则用与系统有关的方式将它转换成一个相对路径名。如果 parent 是空抽象路径名,则新的 File 实例是通过将 child 转换成抽象路径名并根据与系统有关的默认目录来分析结果而创建的。否则,将每个路径名字符串转换成一个抽象路径名,并根据父抽象路径名分析子抽象路径名。

参数:
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" 的 scheme、非空的 path 组件,以及未定义的 authority、query 和 fragment 组件组成
抛出:
NullPointerException - 如果 urinull
IllegalArgumentException - 如果参数有关的前提不成立
从以下版本开始:
1.4
另请参见:
toURI(), URI
方法详细信息

getName

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

返回:
此抽象路径名表示的文件或目录的名称,如果路径名的名称序列为空,则返回空字符串