我有这段代码
//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
一些解决方案?
非常感谢
答案 0 :(得分:2)
FileWriter
使用平台默认编码。使用该课程,IMO非常不是一个好主意。
我建议您使用OutputStreamWriter
指定所需的编码 - 当有选择时,UTF-8几乎总是一个不错的选择。
如果您使用的是Java 7或更高版本,Files.newBufferedWriter
是您的朋友 - 而使用Java 8时,会出现没有Charset
参数的重载,在这种情况下会自动使用UTF-8。 / p>