java 如何写文件
使用 FileWriter 写入文件
FileWriter 是 Java 中最简单的文件写入方式,适合写入文本内容。创建 FileWriter 对象时需要指定文件路径,可以选择是否追加模式。
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
使用 BufferedWriter 提高效率
对于频繁写入操作,BufferedWriter 通过缓冲机制能显著提升性能。通常与 FileWriter 配合使用。
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
bw.write("Line 1");
bw.newLine();
bw.write("Line 2");
} catch (IOException e) {
e.printStackTrace();
}
使用 Files 类快速写入
Java 7+ 的 Files 类提供便捷的静态方法,适合一次性写入全部内容。支持指定字符集和打开选项。
String content = "File content";
Path path = Paths.get("output.txt");
Files.write(path, content.getBytes(), StandardOpenOption.CREATE);
使用 FileOutputStream 写入二进制数据
处理二进制文件(如图片)时需要使用字节流。FileOutputStream 可以直接写入字节数组。
byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F};
try (FileOutputStream fos = new FileOutputStream("binary.bin")) {
fos.write(data);
} catch (IOException e) {
e.printStackTrace();
}
使用 RandomAccessFile 随机访问
需要随机位置读写时,RandomAccessFile 同时支持读写操作。"rw"模式表示可读写。
try (RandomAccessFile raf = new RandomAccessFile("data.txt", "rw")) {
raf.seek(10); // 移动到第10个字节
raf.write("Insert".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
使用临时文件处理
需要创建临时文件时,File.createTempFile() 方法可生成系统临时目录下的唯一文件。
File tempFile = File.createTempFile("temp_", ".txt");
try (FileWriter writer = new FileWriter(tempFile)) {
writer.write("Temporary content");
} catch (IOException e) {
e.printStackTrace();
}
处理文件路径问题
Paths.get() 和 Path 接口能更好地处理跨平台路径问题。resolve() 方法可用于路径拼接。
Path baseDir = Paths.get("/var/data");
Path filePath = baseDir.resolve("subdir/file.txt");
Files.write(filePath, "Content".getBytes());
异常处理最佳实践
文件操作必须处理 IOException。try-with-resources 语句能自动关闭资源,避免内存泄漏。
try {
Files.write(Paths.get("file.txt"), "text".getBytes());
} catch (IOException e) {
System.err.println("Failed to write file: " + e.getMessage());
}






