在 java 文件读写中,`files.createfile()` 方法通过传入 `standardopenoption.create_new` 来创建新文件。如果文件已存在会抛出异常;若需覆盖或追加,应使用 `standardopenoption.write` 配合 `create` 或 `truncate_existing`。以下代码演示了如何安全地创建并写入文件。

如何确保文件不存在时再创建?
使用 `StandardOpenOption.CREATE_NEW` 可以确保只有在文件不存在时才创建成功,否则抛出 `FileAlreadyExistsException`。这是防止意外覆盖已有数据的最佳实践。

import java.nio.file.*;
import java.io.IOException;
public class FileCreator {
public static void main(String[] args) throws IOException {
Path path = Paths.get("test.txt");
try {
Files.createFile(path);
System.out.println("File created successfully.");
} catch (FileAlreadyExistsException e) {
System.out.println("File already exists.");
}
}
}
如何覆盖或追加到现有文件?
若希望文件存在时不报错且能写入,应使用 `StandardOpenOption.CREATE` 和 `StandardOpenOption.WRITE`。若需清空原内容,加入 `TRUNCATE_EXISTING`;若需保留原内容并追加,则省略该选项。

import java.nio.file.*;
import java.io.IOException;
public class FileWriter {
public static void main(String[] args) throws IOException {
Path path = Paths.get("test.txt");
// 覆盖模式:清空后写入
Files.write(path, "Hello".getBytes(),
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING,
StandardOpenOption.WRITE);
// 追加模式:保留原内容
Files.write(path, " World".getBytes(),
StandardOpenOption.CREATE,
StandardOpenOption.APPEND,
StandardOpenOption.WRITE);
}
}
当路径包含多级目录时如何创建文件?
若目标路径的父目录不存在,直接调用 `Files.createFile()` 会抛出 `NoSuchFileException`。此时应先调用 `Files.createDirectories()` 创建所有必要的父目录,再创建文件。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











