0

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

4

2 回答 2

5

当你完成它时,close()你需要调用它。FileWriter这会强制所有输出实际写入磁盘(否则它可能会留在缓冲区中)。

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块中以确保它始终运行。)

于 2009-06-18T21:21:08.923 回答
3

尝试添加:

file.close();

close()方法描述说:

关闭流,首先刷新它。

于 2009-06-18T21:21:10.140 回答