概述

File类是位于java.io下以抽象的方式表示文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录,该类实现了Serializable和Comparable接口,意味着该类支持序列化,并且实例对象可进行比较。

File类不能用于文件的内容访问。如果需要对文件内容进行访问需要依靠流。

File类API

1、常量

常量名

描述

pathSeparator

与系统相关的路径分隔符字符,为方便起见,表示为字符串。

pathSeparatorChar

与系统相关的路径分隔符

separator

与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。

separatorChar

与系统相关的默认名称分隔符。

代码示例:

public class PathDemo01 {
	public static void main(String[] args) {
		System.out.println("名称分隔符:" + File.separatorChar);
		System.out.println("名称分隔符:" + File.separator);
		System.out.println("路径分隔符:" + File.pathSeparatorChar);
		System.out.println("路径分隔符:" + File.pathSeparator);
	}
}

运行结果:

名称分隔符:\
名称分隔符:\
路径分隔符:;
路径分隔符:;

补充:
Windows系统和Linux系统分隔符的区别

操作系统

名称分隔符

路径分隔符

Windows系统

\

;

Linux系统

/

:

2、构造方法

构造方法

描述

File(File parent, String child)

从父抽象路径名和子路径名字符串创建新的 File实例。

File(String pathname)

通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。

File(String parent, String child)

从父路径名字符串和子路径名字符串创建新的 File实例。

File(URI uri)

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

3、get方法

方法名

描述

getName()

返回由此抽象路径名表示的文件或目录的名称。

getPath()

将此抽象路径名转换为路径名字符串。

getAbsolutePath()

返回此抽象路径名的绝对路径名字符串。

getParentFile()

返回此抽象路径名的父目录的抽象路径名,如果此路径名不指定父目录,则返回 null 。

getAbsoluteFile()

返回此抽象路径名的绝对形式。

4、文件状态判断

方法名

描述

exists()

测试此抽象路径名表示的文件或目录是否存在。

isDirectory()

测试此抽象路径名表示的文件是否为目录。

isFile()

测试此抽象路径名表示的文件是否为普通文件。

isHidden()

测试此抽象路径名命名的文件是否为隐藏文件。

canExecute()

测试应用程序是否可以执行此抽象路径名表示的文件。

canRead()

测试应用程序是否可以读取由此抽象路径名表示的文件。

canWrite()

测试应用程序是否可以修改由此抽象路径名表示的文件。

5、创建、删除文件和文件夹

方法名

描述

delete()

删除由此抽象路径名表示的文件或目录。

createNewFile()

当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。

mkdir()

创建由此抽象路径名命名的目录。

mkdirs()

创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

6、列出子目录下的所有文件、目录

方法名

描述

list()

返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。

list(FilenameFilter filter)

返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。

listFiles()

返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。

listFiles(FileFilter filter)

返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。

listRoots()

列出可用的文件系统根。