在 FileWriter 中设置编码的替代方案 - Java

Alternatives to setting encoding in FileWriter - Java

我阅读了 FileWriter 的 java 文档 - 它不允许我们指定编码。我正在使用 FileWriter 以避免在将字符串列表写入文件时自动附加换行符(我认为这是我唯一可以用来实现这一点的方法)。

我现在遇到一个问题,一些属性文件中的一些日文字符被写成“???”,所以我需要以某种方式传递编码信息。有没有其他方法可以避免追加换行符或将编码信息传递给 FileWriter?

不要使用 FileWriter,而是 new OutputStreamWriter(new FileOutputStream(file), encoding)

如果您使用 Path(Java 7+),您可以使用 Files.newBufferedWriter(path, charset, options) 指定 Charset。 (这还将您的输出包装在 BufferedWriter 中,这很好。)

经典的替代方法是使用 OutputStreamWriter 并以这种方式传递 Charset

始终将字符集传递给作者是一个好习惯,即使您认为它不可能处理非 ASCII 内容。