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)