前言
什么是刷新
总的来说,刷新就是把数据从一个地方刷/写到另一个地方。具体来说是,把内存中的数据写到磁盘/硬盘/各种显示设备(包括文件、各种控制台、浏览器等)。
而刷新的内存中的数据都是缓冲区的数据(缓冲区是一块内存,具体来说是字节数组)。
再啰嗦一遍,java里面的刷新( 即flush()函数 ),就是刷新缓冲区,缓冲区就是内存,这样还是太拗口了——更浅显易懂的说法应该是,刷新的意思是把内存的数据(具体来说,是一个字节数组)强制写到磁盘(即文件、各种控制台、浏览器等)。
参考
1、流是计算机中用于在两个设备或者库之间传递数据的形式。
2、以计算机打开一个文档并显示出来为例:
文档实际上是由很多字符构成的集合,而且这些字符间是有顺序的。当你打算打开它的时候,计算机要从硬盘上读取到文件,然后一行一行传给显示设备。你可以想象,系统从文件中由起始位置开始不断取出数据,像水一样通过管道流到显示设备这里。这就是流,确切说这一个是文件流。那么你想,既然流动,就需要管道。
我们说管道就是缓冲区——实际上就是将数据先读取到缓冲区,然后显示设备从缓冲区中读取数据。
3、显示设备获取数据通常是等缓冲区被填满以后。
但是实际上有些时候我们单次想传递的数据并没有缓冲区这么大,那么就需要刷新一下缓存,强制将缓存中的流数据推到显示设备中。
参考:
java 什么叫刷新流的缓冲