java中flush具体的用法!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中flush具体的用法!!!相关的知识,希望对你有一定的参考价值。
你说的是flush()函数吧。flush() 是把缓冲区的数据强行输出,(注意不要和frush()刷新混淆了)
主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush()。 参考技术A 1、你这题问的有点。。。
2、一般只有在“I/O流“的时候,用到flush。
3、用流的时候,往往有缓冲区,只有缓冲区慢的时候,才会将缓冲区里的数据写入到文件中去,只要文件不满或是没有调用flush或是close方法的话,是没法将不满缓冲区的数据写入文件中去的,可以参考我的博客文章http://hi.baidu.com/erliang20088/blog/item/32440c0e3ea39c96d53f7ca8.html
4、所以,当你使用流时,又不能用一次就close的话,一定要每次使用append或print或write的之后,要flush一下,保证数据都能写入文件当中去。
5、至于具体用法,很简单,流对象.flush()就可以了。 参考技术B flush()方法:冲走。意思是把缓冲区的内容强制的写出。
因为操作系统的某些机制,为了防止一直不停地磁盘读写,所以有了延迟写入的概念。
在网络web服务器上也是,为了防止写一个字节就发送一个消息,所以有缓冲区的概念,比如64K的内存区域,缓冲区写满了再一次性写入磁盘之中(或者发送给客户端浏览器)。
flush方法一般是程序写入完成时执行。随后跟着close方法。例如:
// 取得输出流。当然,看具体环境。
PrintWriter out = Util.getWriter();
out.println("输出一些信息,可能很多");
out.flush();
out.close();
有关Java中流的flush方法
对于Java中Collection集合来说,在输出时调用其实是不必要的,只是在某些特殊的情况下除外。
对于Buffered输出流来说,关闭时会自动调用flush方法将缓冲区中的数据写入目的地。大部分情况下并不需要手动调用flush方法,尤其是边读边写,写入目的地时在调用flush方法,这样缓冲区的存在几乎没有什么意义了,也会大大降低写入的效率。
在某些不使用缓冲的字节流中,flush方法是空的。
以上是关于java中flush具体的用法!!!的主要内容,如果未能解决你的问题,请参考以下文章