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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马姗姗 中级黑马   /  2014-1-14 16:31  /  1014 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马姗姗 于 2014-1-15 15:09 编辑

BufferReader FileInputStream FileReader
这三个读取的时候一个按行读取,一个按字节读取,最后一个按字符读取?
那为什么不都用BufferReader呢?这样不是省事多了?
谢谢了

3 个回复

倒序浏览
BufferedReader是高效字符流,读取文本文件的效率比基本流FileReader要快很多。一般读取文本文件我们用BufferedReader.而 FileInputStream 是用来读取字节流文件的,BufferedReader是不可以读取的。
回复 使用道具 举报
BufferReader是一个包装类或者可以称为缓冲流,同样还有一个BufferInputStream 作用与字节流缓冲。   FileInputStream FileReader分别是基于字节跟字符操作的,这是基本也是最直接的文件输入流,但是它们都是一个字节或一个字符的在操作流,这样效率是很低的。所以一般使用都是会将它们用BufferReader和BufferInputStream 缓冲后再使用,用缓冲流包装后,还可以设置缓存大小,这样操作流对象效率就高得多了,特别是在输出流里,缓冲流的作用非常大。
当你要读取字符输入流,用BufferReader是非常好的选择。InputStreamReader这个类也是很重要的,用于字节向字符流的转换 。
回复 使用道具 举报
使用缓冲buffer的确可以一次性的读取一块数据,但是速度的话字节读取还是要快的。毕竟读取字符还需要一个转换字节的过程,因为,程序使用的是字节来存储的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马