追加到 utf8 格式的文件

1 java append character-encoding bufferedwriter

对于一个项目,我需要使用 UTF-8 编码附加到文本文件。在我的研究过程中,我发现了两种可能性:

BufferedWriter out = new BufferedWriter(
    new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8")
)
Run Code Online (Sandbox Code Playgroud)

这将以 UTF-8 格式写入我的文件,但它会覆盖它,而不是附加到它(如果它已经存在)。

然后我找到了用 中的参数附加到现有文件的代码FileWriter,但这不会明确使用 UTF-8,而不是使用默认的系统字符集:

BufferedWriter out = new BufferedWriter(new FileWriter("myfile.txt", true))
Run Code Online (Sandbox Code Playgroud)

我现在需要能够定义编码以及附加到文件。仅依赖系统编码或更改这不是一个选择。

有什么想法吗?

小智 5

您忘记将true参数添加到构造函数中FileOutputStream

BufferedWriter out = new BufferedWriter(
    new OutputStreamWriter(
        new FileOutputStream("file.txt", true), // true to append
        StandardCharsets.UTF_8                  // Set encoding
    )
);
Run Code Online (Sandbox Code Playgroud)