我读过FileWriter的java文档 - 它不允许我们指定编码。我正在使用FileWriter以避免在将字符串列表写入文件时自动附加的换行符(我认为这是我可以用来实现的唯一方法)。
我现在面临一个问题,即少数属性文件中的一些日文字符被写为“???”,所以我需要以某种方式传递编码信息。有没有其他方法可以避免新行追加或将包含信息传递给FileWriter?
答案 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内容。