flush一般主要用在IO中,即清空缓冲区数据,就是说你用读写流的时候,其实数据是先被读到了内存中,然后与此同时数据又写到了文件中,当数据读完的时候不代表数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了 close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先执行flush(),即先清空数据。
比如源头是水源,你是水龙头,缓冲区相当于水管管道,水源不放水(不写入了),不代表管道没有残留水,此时你关闭水龙头(close),你无法保证管道水彻底被你接受(读全),所以,flush就相当于close前的一个确认工作。