java如何写文件
写入文件的基本方法
使用 FileWriter 或 BufferedWriter 可以快速实现文件写入。FileWriter 直接操作文件字符流,适合简单场景;BufferedWriter 提供缓冲区,适合频繁写入。
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
writer.write("Line 1");
writer.newLine();
writer.write("Line 2");
} catch (IOException e) {
e.printStackTrace();
}
使用 Files 工具类(Java 7+)
java.nio.file.Files 提供简洁的静态方法,适合一次性写入内容或处理多行文本。
Path path = Paths.get("output.txt");
String content = "Text to write";
Files.write(path, content.getBytes(), StandardOpenOption.CREATE);
多行写入示例:

List<String> lines = Arrays.asList("Line 1", "Line 2");
Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.CREATE);
二进制文件写入
对于二进制数据(如图片、序列化对象),需使用 FileOutputStream 或 BufferedOutputStream。
try (FileOutputStream fos = new FileOutputStream("data.bin");
BufferedOutputStream bos = new BufferedOutputStream(fos)) {
byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F};
bos.write(data);
} catch (IOException e) {
e.printStackTrace();
}
追加写入模式
通过设置追加标志(append=true)或 StandardOpenOption.APPEND,避免覆盖原有内容。

try (FileWriter writer = new FileWriter("output.txt", true)) {
writer.write("\nAppended text");
} catch (IOException e) {
e.printStackTrace();
}
NIO 追加示例:
Files.write(
Paths.get("output.txt"),
"Appended text".getBytes(),
StandardOpenOption.APPEND
);
异常处理最佳实践
推荐使用 try-with-resources 自动关闭资源,并处理 IOException。对于关键应用,可增加文件权限检查和磁盘空间验证。
Path path = Paths.get("output.txt");
if (Files.isWritable(path.getParent())) {
try (BufferedWriter writer = Files.newBufferedWriter(path)) {
writer.write("Checked write");
} catch (IOException e) {
System.err.println("Write failed: " + e.getMessage());
}
}






