本文目录导读:

- 使用 File.createNewFile() 方法
- 使用 Files.write() 方法(Java 7+)
- 使用 FileOutputStream
- 创建文件到指定目录
- 带异常处理的完整示例
- 运行结果示例
- 注意事项
我来为您介绍Java中创建文件的几种常见方法及完整示例。
使用 File.createNewFile() 方法
import java.io.File;
import java.io.IOException;
public class CreateFileExample1 {
public static void main(String[] args) {
try {
// 创建文件对象
File file = new File("example.txt");
// 检查文件是否已存在
if (file.exists()) {
System.out.println("文件已存在: " + file.getName());
} else {
// 创建新文件
boolean created = file.createNewFile();
if (created) {
System.out.println("文件创建成功: " + file.getName());
System.out.println("文件路径: " + file.getAbsolutePath());
} else {
System.out.println("文件创建失败");
}
}
} catch (IOException e) {
System.out.println("创建文件时发生错误");
e.printStackTrace();
}
}
}
使用 Files.write() 方法(Java 7+)
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class CreateFileExample2 {
public static void main(String[] args) {
try {
// 指定文件路径
Path filePath = Paths.get("data.txt");
// 写入内容并创建文件
List<String> lines = Arrays.asList("Hello World!", "这是第二行", "这是第三行");
Files.write(filePath, lines);
System.out.println("文件创建并写入成功: " + filePath.toAbsolutePath());
} catch (IOException e) {
System.out.println("操作失败");
e.printStackTrace();
}
}
}
使用 FileOutputStream
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateFileExample3 {
public static void main(String[] args) {
String fileName = "output.txt";
String content = "这是文件内容\n这是第二行内容";
try (FileOutputStream fos = new FileOutputStream(fileName)) {
// 将字符串转换为字节数组并写入
byte[] contentBytes = content.getBytes();
fos.write(contentBytes);
System.out.println("文件创建并写入成功: " + fileName);
} catch (IOException e) {
System.out.println("文件操作失败");
e.printStackTrace();
}
}
}
创建文件到指定目录
import java.io.File;
import java.io.IOException;
public class CreateFileInDirectory {
public static void main(String[] args) {
String directoryPath = "myFolder";
String fileName = "myFile.txt";
try {
// 创建目录
File directory = new File(directoryPath);
if (!directory.exists()) {
boolean dirCreated = directory.mkdir();
if (dirCreated) {
System.out.println("目录创建成功: " + directoryPath);
} else {
System.out.println("目录创建失败");
return;
}
}
// 在指定目录中创建文件
File file = new File(directory, fileName);
if (file.createNewFile()) {
System.out.println("文件创建成功: " + file.getAbsolutePath());
} else {
System.out.println("文件已存在");
}
} catch (IOException e) {
System.out.println("操作失败");
e.printStackTrace();
}
}
}
带异常处理的完整示例
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileCreator {
public static void main(String[] args) {
FileCreator creator = new FileCreator();
// 测试不同场景
creator.createFile("test1.txt");
creator.createFileWithContent("test2.txt", "这是测试内容");
creator.createFileInDirectory("testDir", "test3.txt");
// 清理测试文件
creator.cleanUp();
}
// 方法1:创建空文件
public boolean createFile(String fileName) {
try {
File file = new File(fileName);
if (file.createNewFile()) {
System.out.println("✅ 文件创建成功: " + fileName);
return true;
} else {
System.out.println("⚠️ 文件已存在: " + fileName);
return false;
}
} catch (IOException e) {
System.err.println("❌ 创建文件失败: " + e.getMessage());
return false;
}
}
// 方法2:创建文件并写入内容
public boolean createFileWithContent(String fileName, String content) {
try {
Path filePath = Paths.get(fileName);
Files.write(filePath, content.getBytes());
System.out.println("✅ 文件创建并写入完成: " + fileName);
return true;
} catch (IOException e) {
System.err.println("❌ 创建文件失败: " + e.getMessage());
return false;
}
}
// 方法3:在指定目录中创建文件
public boolean createFileInDirectory(String dirName, String fileName) {
try {
// 创建目录
File directory = new File(dirName);
if (!directory.exists()) {
directory.mkdirs();
}
// 创建文件
File file = new File(directory, fileName);
if (file.createNewFile()) {
System.out.println("✅ 文件创建成功: " + file.getAbsolutePath());
return true;
} else {
System.out.println("⚠️ 文件已存在: " + file.getAbsolutePath());
return false;
}
} catch (IOException e) {
System.err.println("❌ 创建文件失败: " + e.getMessage());
return false;
}
}
// 清理测试文件
public void cleanUp() {
// 删除测试文件
new File("test1.txt").delete();
new File("test2.txt").delete();
new File("testDir/test3.txt").delete();
new File("testDir").delete();
System.out.println("🧹 清理完成");
}
}
运行结果示例
✅ 文件创建成功: test1.txt
✅ 文件创建并写入完成: test2.txt
✅ 文件创建成功: /Users/username/testDir/test3.txt
🧹 清理完成
注意事项
- 文件权限:确保程序有文件的写入权限
- 文件已存在:
createNewFile()在文件已存在时会返回 false - 异常处理:务必处理 IOException
- 相对路径 vs 绝对路径:相对路径相对于当前工作目录
- 资源释放:使用 try-with-resources 自动关闭资源
选择哪种方法取决于您的具体需求:
- 仅创建空文件:使用
File.createNewFile() - 创建并写入内容:使用
Files.write()或FileOutputStream - 需要在指定目录创建:先创建目录再创建文件