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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© clh 中级黑马   /  2014-9-13 20:49  /  1667 人查看  /  11 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 clh 于 2014-9-18 21:28 编辑

看毕姥爷的视频,FileReader 在视频中,把文件从c已到d盘时,用到了FileReader,算缓冲区,提高效率
BufferedReader也是一个也是一个缓冲区,也能提高效率,
有些地方又把他两一起用,
这两个我搞的有点混了,谁能解释下,

评分

参与人数 1技术分 +1 收起 理由
付江涛 + 1 神马都是浮云

查看全部评分

11 个回复

倒序浏览
FileReader,需要自己创建缓冲区数组。
BufferedReader,底层给你创建缓冲区。里面增加了特有方法,比如readLine(),读取数据方便
回复 使用道具 举报
付江涛 发表于 2014-9-13 22:10
FileReader,需要自己创建缓冲区数组。
BufferedReader,底层给你创建缓冲区。里面增加了特有方法,比如rea ...

哦,明白了。,创建的缓冲区数组是不是就是那个char[] buf= new char[1024];
谢谢
回复 使用道具 举报
付江涛 发表于 2014-9-13 22:10
FileReader,需要自己创建缓冲区数组。
BufferedReader,底层给你创建缓冲区。里面增加了特有方法,比如rea ...

哦,明白了。,创建的缓冲区数组是不是就是那个char[] buf= new char[1024];
谢谢
回复 使用道具 举报
通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,    BufferedReader in    = new BufferedReader(new FileReader("foo.in"));  将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
回复 使用道具 举报
建议看JDK文档,比较清楚:
回复 使用道具 举报
clh 中级黑马 2014-9-14 10:51:25
7#
风之神 发表于 2014-9-13 23:22
通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedRe ...

这就是文档里面的
回复 使用道具 举报
clh 中级黑马 2014-9-14 10:52:31
8#
daoqin 发表于 2014-9-14 00:29
建议看JDK文档,比较清楚:

文档看过的,
回复 使用道具 举报
clh 发表于 2014-9-13 23:10
哦,明白了。,创建的缓冲区数组是不是就是那个char[] buf= new char[1024];
谢谢
...

恩  可以这么理解,毕老师讲过一个MyBufferedReader,理解了那个就没什么问题了。
回复 使用道具 举报
clh 中级黑马 2014-9-14 19:25:00
10#
付江涛 发表于 2014-9-14 12:09
恩  可以这么理解,毕老师讲过一个MyBufferedReader,理解了那个就没什么问题了。 ...

恩,我去看看
回复 使用道具 举报
文档描述的比较经典 所以就截取了
回复 使用道具 举报
BufferedReader是包装类,是在FileReader的基础上的,效率高
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马