Java FileWriter丢失了特殊字符

时间:2015-03-02 10:49:34

标签: java special-characters filewriter

我有这段代码

 //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

一些解决方案?

非常感谢

1 个答案:

答案 0 :(得分:2)

FileWriter使用平台默认编码。使用该课程,IMO非常不是一个好主意。

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

如果您使用的是Java 7或更高版本,Files.newBufferedWriter是您的朋友 - 而使用Java 8时,会出现没有Charset参数的重载,在这种情况下会自动使用UTF-8。 / p>