Files类是NIO.2核心工具,提供静态方法简化文件操作。通过Path配合使用,支持异常处理与链式调用,比传统流更安全简洁。读取小文件可用Files.readAllLines()返回List,或JDK11+的Files.readString()直接获取字符串,默认UTF-8编码。写入支持覆盖或追加:Files.write(path, content)写入字符序列,Files.write(path, bytes)写入字节数组。示例:Path path = Paths.get("data.txt"); List lines = Files.readAllLines(path); String content = Files.readString(path); Files.write(path, "data".repeat(3));

Java中的Files类是NIO.2(从JDK 7引入)的核心工具之一,提供了丰富的静态方法来简化文件操作。相比传统的FileInputStream和FileOutputStream,Files配合Path使用更简洁、安全,且支持异常处理和链式调用。
读取文件内容
使用Files.readAllLines()或Files.readString()(JDK 11+)可以快速读取整个文件,适合小文件场景。
-
Files.readAllLines(Path path):返回List,每行一个元素 -
Files.readString(Path path):直接返回字符串,编码默认UTF-8
示例:
Path path = Paths.get("data.txt");
List lines = Files.readAllLines(path); // 读取所有行
String content = Files.readString(path); // JDK11+,读取全文
写入文件内容
写操作同样简洁,可覆盖或追加模式写入数据。
立即学习“Java免费学习笔记(深入)”;
-
Files.write(Path path, CharSequence content):写入字符串 -
Files.write(Path path, byte[] bytes):写入字节数组 - StandardOpenOption.APPEND实现追加写入
示例:
Path path = Paths.get("output.txt");
Files.write(path, "Hello, Java NIO!".getBytes());
// 追加写入
Files.write(path, "More text".getBytes(), StandardOpenOption.APPEND);
检查与创建路径
在读写前常需判断文件是否存在或创建目录。
-
Files.exists(Path path):判断路径是否存在 -
Files.isDirectory(Path path):判断是否为目录 -
Files.createDirectories(Path path):递归创建目录
示例:
Path dir = Paths.get("logs");
if (!Files.exists(dir)) {
Files.createDirectories(dir);
}
复制、移动与删除
常用文件管理操作也只需一行代码。
-
Files.copy(source, target):复制文件 -
Files.move(source, target):移动(重命名)文件 -
Files.delete(Path path):删除文件
注意:操作时可能抛出IOException,建议包裹try-catch或向上抛出。
基本上就这些。合理使用Files类能大幅减少样板代码,提升开发效率。对大文件建议用流式处理(如Files.newBufferedReader),避免内存溢出。不复杂但容易忽略的是编码和异常处理细节。










