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。
我有这个代码
//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。