java如何写文件
写入文件的基本方法
使用java.io.FileWriter或java.nio.file.Files类可以实现文件写入。以下是两种常见方式:
1. 使用FileWriter(简单写入)
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 通过
FileWriter直接写入字符串,默认会覆盖原有文件内容。 - 添加
true作为第二个参数(如new FileWriter("output.txt", true))可启用追加模式。
2. 使用Files类(Java 7+推荐)
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try {
Files.write(Paths.get("output.txt"), "Hello, World!".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Files.write()支持字节数组或字符串列表(按行写入),默认覆盖文件。
处理大量数据或逐行写入
对于大文件或需要逐行写入的场景,可以使用BufferedWriter提升性能:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
writer.write("Line 1");
writer.newLine(); // 换行
writer.write("Line 2");
} catch (IOException e) {
e.printStackTrace();
}
}
}
指定字符编码
若需指定编码(如UTF-8),使用OutputStreamWriter:
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.nio.charset.StandardCharsets;
try (OutputStreamWriter writer = new OutputStreamWriter(
new FileOutputStream("output.txt"), StandardCharsets.UTF_8)) {
writer.write("UTF-8编码文本");
}
注意事项
- 文件路径可以是绝对路径(如
/path/to/file.txt)或相对路径(相对于项目根目录)。 - 确保目标目录存在,否则会抛出
IOException。 - 使用
try-with-resources语法(如上示例)自动关闭资源,避免内存泄漏。







