Transferred from: http://blog.csdn.net/jiyangsb/article/details/50984440
The output stream in the IO stream in Java typically has the flush operation, which forces the output stream in the cache (byte stream, character stream, and so on) to be forced to output.
Why is there such a way?
Because the output stream is output, such as writing to a file, the output stream is written to the buffer first, and the buffer's contents are output to the file when the buffer is full. But when the host finishes outputting the output stream, it is possible that the buffer is not filled at this time, so that it waits for the host to send the content, and then flush the contents of the buffer to the file, emptying the buffer.
Therefore, it is common to call the Flush method to force the content output in the buffer before closing the output stream, and to empty the buffer.
Flush methods in the Java output stream