Files类提供文件读写、属性检查、创建删除、复制移动、目录遍历等操作,基于Path和NIO.2,取代旧File类,方法多抛IOException需处理。

Java 中 Files 类是 java.nio.file 包下的工具类,提供了大量操作文件和目录的静态方法。它简化了文件读写、复制、删除、路径处理等常见操作。以下是 Files 的一些常用方法,按功能分类说明:
1. 文件读取与写入
这些方法适合处理小文件,内容直接在内存中操作。-
Files.readAllLines(Path path):读取文件所有行,返回 List
,默认使用 UTF-8 编码。 - Files.readAllBytes(Path path):读取文件全部字节,返回 byte[],适合读取图片、二进制文件等。
- Files.write(Path path, Iterable extends CharSequence> lines):将文本行写入文件,自动创建文件(如果不存在)。
- Files.write(Path path, byte[] bytes):将字节数组写入文件,常用于保存二进制数据。
2. 文件检查与属性获取
判断文件状态或获取元信息。- Files.exists(Path path):判断路径对应的文件或目录是否存在。
- Files.isDirectory(Path path):判断是否为目录。
- Files.isRegularFile(Path path):判断是否为普通文件(非目录、符号链接等)。
- Files.size(Path path):获取文件大小(字节数)。
- Files.getLastModifiedTime(Path path):获取最后修改时间。
- Files.getOwner(Path path):获取文件所有者(需文件系统支持)。
3. 文件创建与删除
管理文件生命周期。- Files.createFile(Path path):创建新文件,若已存在则抛出异常。
- Files.createDirectory(Path path):创建单层目录,父目录需已存在。
- Files.createDirectories(Path path):创建多级目录,自动补全父目录。
- Files.delete(Path path):删除文件或空目录,若不存在会抛异常。
- Files.deleteIfExists(Path path):删除文件,若不存在也不报错,返回布尔值。
4. 文件复制与移动
实现文件的迁移或备份。- Files.copy(Path source, Path target):复制文件,目标不能已存在。
- Files.copy(Path source, Path target, CopyOption... options):可传入 StandardCopyOption 如 REPLACE_EXISTING、COPY_ATTRIBUTES 等控制行为。
- Files.move(Path source, Path target):移动或重命名文件,也可用 CopyOption 控制。
5. 目录遍历与搜索
处理目录中的内容。-
Files.list(Path dir):返回目录下直接子项的 Stream
,可用于遍历。 - Files.walk(Path start, int maxDepth):深度优先遍历目录树,支持限制层级。
-
Files.find(Path start, int maxDepth, BiPredicate
asicFileAttributes> matcher) :按条件查找文件,比如根据属性筛选。
6. 其他实用方法
-
Files.lines(Path path):返回文件每行内容的 Stream
,适合大文件逐行处理。 - Files.newBufferedReader(Path path):获取 BufferedReader,用于高效读取文本。
- Files.newBufferedWriter(Path path):获取 BufferedWriter,用于写入文本。
- Files.isSymbolicLink(Path path):判断是否为符号链接。
基本上就这些。Files 的设计更现代,基于 Path 和 NIO.2,推荐替代旧的 File 类操作。注意多数方法会抛出 IOException,调用时需要处理。











