输出流类似于一根管道,输出的时候先放到管道里,然后管道满了存到介质上(硬盘或其他地方),当我们输出完后管道里面可能还有剩余,就用flush()清空管道即全部存到介质上。Java默认的缓冲区大小一般是8kb,就是说只有每填满8kb才会提交一次,当少于这个值时就不会提交,所以最后为防止有未提交数据就flush()一下,强行提交数据。一般输出流关闭之前要用下这个方法。举个例子,默认缓冲区大小是8k,如果你是用缓冲区操作10kb的数据,你使用了flush方法那么数据不会有丢失,但是如果没有使用fulsh方法那么得到得数据只有8kb,剩下的2kb会丢失。