如何在不删除现有数据的情况下写入文件

时间:2015-04-28 15:44:35

标签: java file-io text-files

我尝试将数据写入文本文件。我正在使用此代码:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}

但是在程序运行时,该文件将覆盖已在文本文件中找到的现有数据。如何在不覆盖的情况下将新数据行写入同一文本文件?有没有简单易懂的方法来写它?

2 个答案:

答案 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使用平台编码,因此您无权使用该类。它不便携。