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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么输入输出流被包装后,读写效率会大幅提升,我会使用但是不甚理解其中的原理.

5 个回复

正序浏览
孟小垚 发表于 2016-7-9 19:46
就是原先是一个字节一个字节的读写,包装以后是1M的读写的

感谢你给我的解释,还是有些道理的.  阿卜的这个解释更加准确,可以看看.
BufferedReader的最大特点就是缓冲区的设置。通常Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求,如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。  使用BufferedReader可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。  因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和InputStreamReader)。
回复 使用道具 举报
阿卜 发表于 2016-7-9 23:24
正好前几天遇到这个问题,所以去找了下解答:以下资料来自网络:
BufferedReader的最大特点就是缓冲区的设 ...

讲解的很精辟,这个问题终于懂了.
回复 使用道具 举报
正好前几天遇到这个问题,所以去找了下解答:以下资料来自网络:
BufferedReader的最大特点就是缓冲区的设置。通常Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求,如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
使用BufferedReader可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和InputStreamReader)。
回复 使用道具 举报
BufferedReader的最大特点就是缓冲区的设置。通常Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求,如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。  使用BufferedReader可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。  因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和InputStreamReader)。
回复 使用道具 举报
就是原先是一个字节一个字节的读写,包装以后是1M的读写的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马