黑马程序员技术交流社区

标题: io操作 [打印本页]

作者: 黑马王宁    时间: 2012-12-4 15:42
标题: io操作
io操作的flush()方法有什么作用啊?在close()方法之前,需要先flush()吗
作者: 睡中忘了的睡    时间: 2012-12-4 15:50
flush()有刷流的作用,
close()关闭流,在关闭之前会先刷流,所以在close()方法之前,需要先flush()。
作者: 冯盼    时间: 2012-12-4 15:55
流数据是先放进内存缓冲区中的,而默认情况下,只有缓冲区满了才会将缓冲区数据取走,但是有往往我们需要的数据,并不一定能够将缓冲区填满,所以为了避免数据丢失,我们会手动将缓冲区数据取出,即flush()方法。而close()方法是关闭流,默认的是关闭流之前执行一次flush()操作,如果数据很少,取一次就行那么调用一次close()方法就可以了。
作者: 陈建华    时间: 2012-12-6 19:01
在java的io操作的是底层的字节流对象。设备与设备之间传递的是一个个字节,也就是0 或1这样的数字。在以前就只能这样一个一个地传递,后来为了提高性能,将要传送的数据放进一个数组中,将数组中的数据一次性的传过去。不过当我们写好了数组中的数据应该使用flush方法,将数组中的数据写入流通道中。,这样才能真真将数据传过去。所以很多类对象在close方法里面会自动加上刷新方法。以保证在关闭流之前,数据已经写完了。但是后来出现一些包装类,比如Buffered等,那就必须我们人工手动的在关闭流之前将数据刷新。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2