两者的区别:
flush(): 仅仅刷新缓冲区(一般写字符时用到,因为写字符时先进入缓冲区),然后将内存中的数据立刻写出(因为缓冲区是写满之后才会写出, 用flush()就不必等到缓冲区满,立刻写出)流对象还可以继续使用.
close(): 关闭流对象. 关闭之后,流对象不可以继续使用.但是在关闭之前会刷新一次缓冲区.
关于缓冲区:
BufferOutputStream的每次写入(write())实际上都是将内容写入到了byte[],当buffer容量上限之后,才会执行真正的磁盘写入. 并不是每写入一次就执行一次磁盘写入. 如果我们实现每一次写入就写入到磁盘的话就可以使用flush()方法.