A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么BufferedWriter关闭之前需要使用flush方法,而BufferedReader不需要?

4 个回复

倒序浏览
我记得close最后会自动刷新的,BufferedWriter和BufferedReader都不需要吧
回复 使用道具 举报
BufferedReader是读到内存中,而BufferedWriter是将内存的东西写入到数组或文件中
回复 使用道具 举报
目的地不一样。BufferedWriter的目的地是目标文件,通过flush的刷新将缓冲的数据写入目标文件中去,flush会将流清空。而BufferedReader则是将字符写入到程序中。如果存在flush将流清空了,那么程序中便没有字符了。
回复 使用道具 举报
BuferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BuferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
flush():刷新该流的缓冲。
读取流,不需要刷新缓冲,应为是读取的。一段一段的读取。刷新没有作用。
写入流,将数据缓冲到内存中,刷新,就是执行写的操作,将缓冲的数据写到目的流中,
如果不刷新,内存中会一直堆积,而且不再执行写入操作。
关于关闭流的刷新操作,首先可能会导致内存堆积大量数据,不利于提高效率,其次流关闭的过程中会产生异常,导致流关闭失败。所以流关闭时的刷新操作有点不靠谱。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马