java - 写入文件

标签 java java-io filewriter

我第一次写入文件,但文件上的文本完全错误。它打印的是无法识别的字符,而不是数字(它应该打印)。我似乎无法理解为什么会发生这种情况? (在我的代码中,打印语句位于 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/

相关文章:

c - fprintf 插入随机下一行?

java - 如何通过 SOAP 进行 Windows Live 身份验证 (RST)

java - Jenkins:EMMA 验证错误

java-io - 我想使用Java获取文件的下载状态,java中有什么方法可以做到这一点吗?请阅读完整说明

Java : read and write a file together

java - 如何将 java.io.ObjectInputStream 转换为 java.util.stream.Stream?

java - 无法在 JPanel 中添加操作监听器

java - 默认开启前置摄像头

java - HashMap 困惑。读取/写入文件。 java

java - java中如何将数据写入txt文件?