flush in java.io.FileWriter

2022-09-01 09:26:24

我脑海中有一个问题,在写入文件时,在关闭完成之前,我们是否应该包括slash()??.如果是这样,它究竟会做什么?不流自动刷新??编辑:

那么冲洗它实际上做了什么?


答案 1

写入器和流通常会在内存中缓冲一些输出数据,并尝试一次将其写入更大的块中。刷新将导致从缓冲区立即写入磁盘,因此如果程序崩溃,数据不会丢失。当然,不能保证,因为磁盘可能不会立即物理写入数据,因此它仍然可能丢失。但是,这不会是Java程序的错误:)

PrintWriters 会在您写入行尾时自动刷新(默认情况下),当然,当您关闭流和缓冲区时,它们也会刷新。除此之外,仅当缓冲区已满时才会进行刷新。


答案 2

我强烈建议在关闭之前调用冲洗。基本上,它将剩余的缓冲数据写入文件。

如果您明确调用,则可以确定任何来自 的操作都是灾难性的,并且与释放系统资源有关。flushIOExceptionclose

当您自己处理时,您可以像处理数据写入异常一样处理它。flushIOException


推荐