同样有缓冲区,为什么bufferedReader输入流不需要清空缓冲区?而bufferedWriter需要清空缓冲区呢?

当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取, 如果缓冲区数据不足,才会再从文件中读取。清不清空BufferedReader的缓冲区都对文件本身没什么影响,清了还影响速度

使用 BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。 BufferedWriter的缓冲区如果不清空,有可能有部分内容只是写进缓冲区,但没有真正写入文件,这样很可能导致文件内容不全甚至是空白。

原文地址:https://www.cnblogs.com/sincoolvip/p/5578434.html