【问题标题】:Writing to file写入文件
【发布时间】:2014-05-23 04:39:51
【问题描述】:

我第一次写入文件,但文件上的文本完全错误。它打印的不是数字(它应该打印),而是无法识别的字符。我似乎无法理解为什么会这样? (在我的代码中,打印语句在 for 循环内,但这是循环周围的“外壳”)

对此有合理的解释吗?

try {
 FileWriter outFile = new FileWriter("newFile.txt", true);
 outFile.write(number);
} catch (IOException e) {
 e.printStackTrace();
}

【问题讨论】:

  • 未指定字符编码。您应该指定字符编码。
  • @BoristheSpider:你不能用FileWriter 做到这一点——这只是避免它的一个原因:(
  • Scanner 不会在任何地方写入任何内容,并且您的代码中也没有 Scanner。不要引入无关紧要的内容。

标签: java java-io filewriter


【解决方案1】:

你打电话给Writer.write(int)

写入单个字符。要写入的字符包含在给定整数值的低 16 位中;忽略高 16 位。

我的猜测是不是你想要做的。如果你想写一个数字的文本表示,你需要明确地这样做:

outFile.write(String.valueOf(number));

(我个人建议使用包裹在FIleOutputStream 周围的OutputStreamWriter,因为这样您可以并且应该指定编码。FileWriter 总是 使用平台默认编码。)

【讨论】:

  • 谢谢你,这工作:)!如果这可能是一个更好的解决方案,我也会阅读 OutputStreamWriter。
猜你喜欢
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2011-02-05
相关资源
最近更新 更多