在 Java 中,向 File 文件写入内容有多种方式,下面按常见程度给你介绍几种常用方法,并附带示例。
Files.write(最简单,推荐)Java 7+,适合一次性写入
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
String content = "Hello, Java!";
Files.write(Paths.get("test.txt"), content.getBytes());
// 写入多行
List<String> lines = Arrays.asList("第一行", "第二行");
Files.write(Paths.get("test.txt"), lines);
}
}
✅ 简洁
❌ 不适合频繁写入
FileWriter(字符流,常用)import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
try (FileWriter writer = new FileWriter("test.txt")) {
writer.write("Hello World\n");
writer.write("Java File 写入");
} catch (IOException e) {
e.printStackTrace();
}
}
}
new FileWriter("test.txt", true)
BufferedWriter(效率高)import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"))) {
bw.write("缓冲区写入");
bw.newLine();
} catch (IOException e) {
e.printStackTrace();
}
}
}
✅ 适合写大量内容
FileOutputStream(字节流)import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
try (FileOutputStream fos = new FileOutputStream("test.txt")) {
fos.write("字节流写入".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
✅ 适合图片、二进制
❌ 不适合纯文本
PrintWriter(方便格式化)import java.io.PrintWriter;
public class Test {
public static void main(String[] args) throws Exception {
try (PrintWriter pw = new PrintWriter("test.txt")) {
pw.println("第一行");
pw.println("第二行");
}
}
}
| 场景 | 推荐方式 |
|---|---|
| 简单写文本 | Files.write |
| 普通文本 | FileWriter |
| 大量文本 | BufferedWriter |
| 二进制 | FileOutputStream |
| 格式化输出 | PrintWriter |
如果你有追加 / 覆盖 / 编码 / 大文件等具体需求,可以告诉我,我给你更合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。