我尝试将数据写入文本文件。我正在使用此代码:
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}
但是在程序运行时,该文件将覆盖已在文本文件中找到的现有数据。如何在不覆盖的情况下将新数据行写入同一文本文件?有没有简单易懂的方法来写它?
答案 0 :(得分:3)
我想你可以使用FileWriter(File file, Boolean append)
在给定File对象的情况下构造FileWriter对象。如果是第二个 参数为true,然后将字节写入文件的末尾 而不是开始。
答案 1 :(得分:3)
try (Writer writer = Files.newBufferedWriter(
Paths.get("filename.txt"), StandardCharsets.UTF_8,
StandardOpenOption.WRITE,
StandardOpenOption.APPEND)) {
writer.write("something");
}
打开选项是一个varargs列表,默认为新文件创建。
BTW FileWriter使用平台编码,因此您无权使用该类。它不便携。