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

Posted

技术标签:

【中文标题】如何在不删除现有数据的情况下写入文件[重复]【英文标题】:How to write to a file without deleting privious existing data [duplicate] 【发布时间】:2015-07-07 13:39:50 【问题描述】:

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

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

但是当程序运行时,文件正在覆盖文本文件中已经存在的数据。如何将新数据行写入同一个文本文件而不覆盖它?有没有简单易行的写法?

【问题讨论】:

您提供的页面不适用于我,因为我在这里发布了我的问题@ekuusela 【参考方案1】:

我想你可以使用FileWriter(File file, Boolean append)

在给定 File 对象的情况下构造一个 FileWriter 对象。如果第二个 参数为真,则字节将被写入文件末尾 而不是开始。

【讨论】:

【参考方案2】:
try (Writer writer = Files.newBufferedWriter(
          Paths.get("filename.txt"), StandardCharsets.UTF_8,
          StandardOpenOption.WRITE,
          StandardOpenOption.APPEND)) 
    writer.write("something");

打开选项是可变参数列表,默认创建新文件。

BTW FileWriter 使用平台编码,因此您有权不使用该类。它不是便携式的。

【讨论】:

以上是关于如何在不删除现有数据的情况下写入文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不加载图像的情况下为文件系统上的现有图像写入或修改 EXIF 数据?

如何在不使用 PHP 将文件写入磁盘的情况下将文件发布到 REST 服务器?

如何在不覆盖现有记录的情况下将新行添加到数据表

如何在不将文件写入光盘的情况下创建文件并压缩它们?

如何在不使用临时文件的情况下在 python 的 tarfile 中写入大量数据

如何在不复制列标签的情况下将多个数据框写入同一张表