java -- 文件管家File类

类初识

File是java中文件管理工具类,主要负责文件和目录的相关操作。

JDK1.8中对其描述如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
* An abstract representation of file and directory pathnames.
*
* <p> User interfaces and operating systems use system-dependent <em>pathname
* strings</em> to name files and directories. This class presents an
* abstract, system-independent view of hierarchical pathnames. An
* <em>abstract pathname</em> has two components:
*
* <ol>
* <li> An optional system-dependent <em>prefix</em> string,
* such as a disk-drive specifier, <code>"/"</code>&nbsp;for the UNIX root
* directory, or <code>"\\\\"</code>&nbsp;for a Microsoft Windows UNC pathname, and
* <li> A sequence of zero or more string <em>names</em>.
* </ol>

需要指出的是 ,File对象并不一定是一个实际存在的物理对象,它仅表示对指定path的文件或目录的抽象描述;最终生成文件和目录,还得依赖于相关的成员函数如createNewFile()mkdir()等。

所在包

File类位于java.io包下,使用时需要导包。

构造函数

File共有6个构造方法,其中2个为私有构造方法,主要供其类部使用,这里不谈;剩余的4个公有构造函数,详情见下表所示:

构造方法名介绍
File(File parent, String child)通过父目录File对象和待创建目录或文件名,生成一个File对象
File(String parent, String child)通过父目录名和待创建目录或文件名,生成一个File对象
File(String pathname)通过指定完整路径名,生成一个File对象
File(URI uri)通过指定完整路径的URI,生成一个File对象

常用成员方法

由于File类中方法比较多,我们这里简单地分类如下:

  • 负责创建文件和目录的方法
创建的方法描述
boolean createNewFile()创建新文件
boolean mkdir()创建新单级目录
boolean mkdirs()创建新多级目录
  • 负责删除文件和目录的方法
删除的方法描述
boolean delete()删除指定文件和目录(目录必须为空)
  • 负责获取文件和目录属性的方法
获取的方法描述
File getAbsoluteFile()获取绝对路径的File对象
String getAbsolutePath()获取File对象的绝对路径
String getParent()获取File对象的父路径
File getParentFile()获取File对象的父File对象
String getName()获取文件或目录名称
String getPath()获取文件或目录创建时指定的路径(绝对或相对路径)
long lastModified()以毫秒值返回文件或目录最后修改时间
long length()返回文件的字节数
  • 负责判断文件和目录行为的方法
判断的方法描述
boolean exists()判断文件或目录是否存在
boolean isAbsolute()判断文件或目录路径是否为绝对路径
boolean isDirectory()判断是否为目录对象
boolean isFile()判断是否为文件对象
boolean isHidden判断是否为隐藏文件或目录
  • 负责修改文件和目录属性的方法
修改的方法描述
boolean renameTo(File dest)将文件或目录路径修改为dest的路径

除此之外,有一些与文件遍历有关的方法,我们需重点掌握,总结如下:

遍历的方法描述
String[] list()获取目录下所有文件和目录,以String类型返回
File[] listFiles()获取目录下所有文件和目录,以File类型返回
File[] listRoots()获取文件系统的根目录,win下为盘符,linux下为“\”,以File类型返回