如何在不删除现有数据的情况下写入文件
How to write to a file without deleting privious existing data
我正在尝试将数据写入文本文件。我正在使用此代码:
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}
但是当程序 运行 时,文件正在覆盖文本文件中已经存在的数据。如何在不覆盖的情况下将新数据行写入同一个文本文件?有什么简单易行的写法吗?
我想你可以使用 FileWriter(File file, Boolean append)
Constructs a FileWriter object given a File object. If the second
argument is true, then bytes will be written to the end of the file
rather than the beginning.
try (Writer writer = Files.newBufferedWriter(
Paths.get("filename.txt"), StandardCharsets.UTF_8,
StandardOpenOption.WRITE,
StandardOpenOption.APPEND)) {
writer.write("something");
}
打开选项是可变参数列表,默认为创建新文件。
顺便说一句,FileWriter 使用平台编码,因此您有权不使用 class。不便携。
我正在尝试将数据写入文本文件。我正在使用此代码:
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}
但是当程序 运行 时,文件正在覆盖文本文件中已经存在的数据。如何在不覆盖的情况下将新数据行写入同一个文本文件?有什么简单易行的写法吗?
我想你可以使用 FileWriter(File file, Boolean append)
Constructs a FileWriter object given a File object. If the second argument is true, then bytes will be written to the end of the file rather than the beginning.
try (Writer writer = Files.newBufferedWriter(
Paths.get("filename.txt"), StandardCharsets.UTF_8,
StandardOpenOption.WRITE,
StandardOpenOption.APPEND)) {
writer.write("something");
}
打开选项是可变参数列表,默认为创建新文件。
顺便说一句,FileWriter 使用平台编码,因此您有权不使用 class。不便携。