【发布时间】:2016-06-12 15:46:47
【问题描述】:
我正在尝试使用 write.write() 函数将一些数字写入 *.txt 文件。当我用记事本打开创建的文件时,我看到乱码,但是当我用记事本++打开时,文件没问题。谁能解释为什么会这样?
try {
for(int i = 0; i < predictionsList.size(); i ++){
writer.write(Integer.toString(predictionsList.get(i)));
writer.write("\n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
【问题讨论】:
-
请显示您用于编写文件的代码。
-
可能是字符编码问题
-
请给我们看代码。但我可以想象你在做什么。在记事本++中打开的文件显示正常,而不是在记事本中只意味着一件事。行结束符。 Notepad 要求它是 \r\n,但 Notepad++ 可以理解它是 \r 还是 \n 或两者兼而有之。检查您的代码在做什么,请发布尽可能多的详细信息。
-
您可能正在编写一个没有正确字节顺序标记的 Unicode 文件。去谷歌上查询。 Notepad++ 可能会进行完整性检查并将其作为 Unicode 处理,即使缺少字节顺序标记,而 Notepad 只会将其读取为 ANSI。