如何在Java中向现有文件添加新文本行?

2022-08-31 10:18:00

我想在不删除该文件的当前信息的情况下将新行附加到现有文件。简而言之,这是我当前使用的方法:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.Writer;

Writer output;
output = new BufferedWriter(new FileWriter(my_file_name));  //clears file every time
output.append("New Line!");
output.close();

上述行的问题只是它们正在擦除我现有文件的所有内容,然后添加新的行文本。

我想在文件内容的末尾附加一些文本,而不删除或替换任何内容。


答案 1

您必须在追加模式下打开文件,这可以通过使用构造函数来实现。FileWriter(String fileName, boolean append)

output = new BufferedWriter(new FileWriter(my_file_name, true));

应该做这个把戏


答案 2

的解决方案是有效的,但是您无法指定输出编码,在这种情况下,将使用机器的默认编码,这通常不是UTF-8!FileWriter

所以在最好的情况下使用:FileOutputStream

    Writer writer = new BufferedWriter(new OutputStreamWriter(
        new FileOutputStream(file, true), "UTF-8"));