我第一次写入文件,但文件上的文本完全错误。它打印的是无法识别的字符,而不是数字(它应该打印)。我似乎无法理解为什么会发生这种情况? (在我的代码中,打印语句位于 for 循环内,但这是循环周围的“外壳”)
这有合乎逻辑的解释吗?
try {
FileWriter outFile = new FileWriter("newFile.txt", true);
outFile.write(number);
} catch (IOException e) {
e.printStackTrace();
}
最佳答案
您正在调用 Writer.write(int)
:
Writes a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.
我的猜测是这不是您想要做的。如果您想编写数字的文本表示形式,则需要明确地执行此操作:
outFile.write(String.valueOf(number));
(我个人建议使用 OutputStreamWriter
包裹在 FIleOutputStream
中,这样您就可以 - 并且应该 - 指定编码。 FileWriter
始终使用平台默认编码。)
关于java - 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22971683/