java中FileReader或FileWriter对象刷新方法调用

java中FileReader或FileWriter对象刷新方法调用,java,io,Java,Io,我读到调用flush方法可以保证您认为已经写入的最后一个数据实际上会被输出到文件中。我不明白这句话的意思。有人能清楚地解释flush方法调用实际会做什么吗?许多流都有内部缓冲区,它们在数据传递之前用来存储数据在…上这可以防止文件流必须不断地将每个字节写入磁盘(这可能非常昂贵)。flush命令强制流清除其内部缓冲区,这样,在这种情况下,所有内容都将被强制存储到磁盘。写入程序通常会被缓冲,因此它会在写入文件之前等待缓冲区被填满。Flush告诉您写入缓冲区,即使缓冲区可能尚未填满。当您完成写入时,它通

我读到调用flush方法可以保证您认为已经写入的最后一个数据实际上会被输出到文件中。我不明白这句话的意思。有人能清楚地解释flush方法调用实际会做什么吗?

许多流都有内部缓冲区,它们在数据传递之前用来存储数据在…上这可以防止文件流必须不断地将每个字节写入磁盘(这可能非常昂贵)。flush命令强制流清除其内部缓冲区,这样,在这种情况下,所有内容都将被强制存储到磁盘。

写入程序通常会被缓冲,因此它会在写入文件之前等待缓冲区被填满。Flush告诉您写入缓冲区,即使缓冲区可能尚未填满。当您完成写入时,它通常很有用,因为最后一个缓冲区可能未满,但您希望完成写入。

如果对象未调用flush方法并关闭对象,会发生什么情况…我观察到,即使在此时它正在写入文件如果您关闭文件,它可能会自动刷新缓冲区,但最好的做法是你自己做吧。例如,Java Writer close()方法首先为您刷新缓冲区。您能告诉我任何情况下,它会因为不调用flush方法而产生问题吗。。所以我会得到澄清,我会复制粘贴一个相关的答案。我强烈建议在收盘前打电话给flush。基本上,它将剩余的缓冲数据写入文件。如果您显式地调用flush,您可能会确信任何从关闭状态出现的IOException都是灾难性的,并且与释放系统资源有关。当您刷新自己时,您可以用处理数据写入异常的相同方式处理其IOException