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

时间:2016-02-11 20:53:13

标签: java encoding outputstream filewriter bufferedwriter

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

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

2 个答案:

答案 0 :(得分:4)

请勿使用FileWriter,而是使用new OutputStreamWriter(new FileOutputStream(file), encoding)

答案 1 :(得分:2)

如果您使用的是diffed.next()(Java 7+),则可以使用' a' 指定Path。 (这也会将您的输出包装在Files.newBufferedWriter(path, charset, options)中,这很不错。)

经典替代方案是使用Charset并以这种方式传递BufferedWriter

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