好的...所以我有一个相当有趣的错误...我声明了一个名为FileWileer的文件,我让它通过以下for循环:
for (int i = 0; i < a.radtot; i++) {
file.write("" + i * a.rstep);
for (int n = 0; n < a.timetot; n++) {
file.write("\t " + T[n][i]);
System.out.println(T[n][i] + " " + n + " " + i);
}
file.write("\n");
}
最后,System.out.println命令打印出我期望的内容,但文件中途中断...就像在,而不是打印出System.out所做的一切......它停在中间。有谁碰巧知道为什么会这样做?我做错了吗?
答案 0 :(得分:5)
完成后,您需要在FileWriter
上致电close()
。这会强制所有输出实际写入磁盘(否则可能会留在缓冲区中)。
for (int i = 0; i < a.radtot; i++) {
file.write("" + i * a.rstep);
for (int n = 0; n < a.timetot; n++) {
file.write("\t " + T[n][i]);
System.out.println(T[n][i] + " " + n + " " + i);
}
file.write("\n");
}
file.close(); // <-- Add this
(我假设您为了简洁而省略了异常处理,所以我也做了同样的事。close()
通常位于finally
块中,以确保它始终运行。)
答案 1 :(得分:3)