如何在不删除现有数据的情况下写入文件[重复]
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 服务器?