Java FileWriter 丢失特殊字符

Java FileWriter lost special characters

我有这个代码

 //write a file in a specific directory
public static void writeFile(String comment, String outputFileName) {
    FileWriter fWriter = null;
    BufferedWriter writer = null; 
    try {
        fWriter = new FileWriter(outputFileName,true);
        writer = new BufferedWriter(fWriter);
        writer.write(comment);
        writer.newLine();
        writer.close();
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

但是当我将文件保存在 outputFileName 中时,它丢失了所有特殊字符。

文件输出格式为.txt

一些解决方案?

非常感谢

FileWriter 使用平台默认编码。在我看来,使用 class 很少是个好主意。

我建议您使用 OutputStreamWriter 指定您想要的编码 - 当您 选择时,UTF-8 几乎总是一个不错的选择。

如果您使用 Java 7 或更高版本,Files.newBufferedWriter 是您的朋友 - 而对于 Java 8,有一个没有 Charset 参数的重载,在在这种情况下自动使用 UTF-8。