好的...所以我有一个相当有趣的错误...我声明了一个名为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所做的一切......它停在中间。有谁碰巧知道为什么会这样做?我做错了吗?

有帮助吗?

解决方案

您需要致电 <完成后, 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 块中确保它始终运行。)

其他提示

尝试添加:

file.close();

close() 方法描述说:

  

关闭流,先冲洗它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top