java中flush的具体用法。
1个回答
展开全部
FileOutPutStream继承outputStream,并不提供flush方法的重写,所以无论内容多少,write都会将二进制流直接传递给底层操作系统的I/O,flush无效果而Buffered系列的输入输出流函数单。
从Buffered这个单词就可以看出他们是使用缓冲区的,应用程序每次IO都要和设备进行通信,效率很低,因此缓冲区为了提高效率,当写入设备时,先写入缓冲区,等到缓冲区有足够多的数据时,就整体写入设备
使用BufferedXXXStream。默认缓冲区大小是8K。读的时候会一直填满缓冲区(或者文件读取完毕),写的时候也是等缓冲区满了之后(或者执行flush操作)才将内容送入内核缓冲区。
效率高的原因就是避免了每读一个字节都要陷入操作系统内核(这是个耗时的操作)。
flush()方法是输出储存在内存中全部的内容(批量输出)。 常用比如FileWriter类中就是一个典型,除了可以使用flush输出,最后调用close方法也会批量输出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询