我是第一次写文件,但文件上的文字出错了。它打印出无法识别的字符,而不是数字(它应该打印)。我似乎无法理解为什么会这样? (在我的代码中,print语句在for循环中,但这是循环中的“shell”)
对此有合理的解释吗?
try {
FileWriter outFile = new FileWriter("newFile.txt", true);
outFile.write(number);
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:4)
您正在致电Writer.write(int)
:
写一个字符。要写入的字符包含在给定整数值的16个低位中; 16位高位被忽略。
我的猜测是不你想做什么。如果要编写数字的文本表示,则需要明确地执行此操作:
outFile.write(String.valueOf(number));
(就我个人而言,我建议您使用OutputStreamWriter
FIleOutputStream
,然后您可以 - 并且应该 - 指定编码。FileWriter
始终使用平台默认编码。)