Java FileWriter帮助

时间:2009-06-18 21:19:49

标签: java filewriter

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

2 个答案:

答案 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)

尝试添加:

file.close();

close()方法说明说明:

  

关闭流,先冲洗它。