在 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 内容。
我阅读了 FileWriter 的 java 文档 - 它不允许我们指定编码。我正在使用 FileWriter 以避免在将字符串列表写入文件时自动附加换行符(我认为这是我唯一可以用来实现这一点的方法)。
我现在遇到一个问题,一些属性文件中的一些日文字符被写成“???”,所以我需要以某种方式传递编码信息。有没有其他方法可以避免追加换行符或将编码信息传递给 FileWriter?
不要使用 FileWriter
,而是 new OutputStreamWriter(new FileOutputStream(file), encoding)
。
如果您使用 Path
(Java 7+),您可以使用 Files.newBufferedWriter(path, charset, options)
指定 Charset
。 (这还将您的输出包装在 BufferedWriter
中,这很好。)
经典的替代方法是使用 OutputStreamWriter
并以这种方式传递 Charset
。
始终将字符集传递给作者是一个好习惯,即使您认为它不可能处理非 ASCII 内容。