黑马程序员技术交流社区

标题: 为什么BuffereWriter关闭之前需要使用flush方法,而BuffereReader不需要? [打印本页]

作者: 任我行    时间: 2014-12-11 11:17
标题: 为什么BuffereWriter关闭之前需要使用flush方法,而BuffereReader不需要?
为什么BufferedWriter关闭之前需要使用flush方法,而BufferedReader不需要?
作者: fatesabering    时间: 2014-12-11 12:13
我记得close最后会自动刷新的,BufferedWriter和BufferedReader都不需要吧
作者: 李家汉子初养成    时间: 2014-12-11 12:26
BufferedReader是读到内存中,而BufferedWriter是将内存的东西写入到数组或文件中
作者: 沙子    时间: 2014-12-11 13:01
目的地不一样。BufferedWriter的目的地是目标文件,通过flush的刷新将缓冲的数据写入目标文件中去,flush会将流清空。而BufferedReader则是将字符写入到程序中。如果存在flush将流清空了,那么程序中便没有字符了。
作者: 史云龙    时间: 2014-12-11 13:11
BuferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BuferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
flush():刷新该流的缓冲。
读取流,不需要刷新缓冲,应为是读取的。一段一段的读取。刷新没有作用。
写入流,将数据缓冲到内存中,刷新,就是执行写的操作,将缓冲的数据写到目的流中,
如果不刷新,内存中会一直堆积,而且不再执行写入操作。
关于关闭流的刷新操作,首先可能会导致内存堆积大量数据,不利于提高效率,其次流关闭的过程中会产生异常,导致流关闭失败。所以流关闭时的刷新操作有点不靠谱。




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