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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a6217815 中级黑马   /  2014-6-11 23:07  /  2408 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 a6217815 于 2014-6-13 10:18 编辑

我知道的,大概就是Scanner在java.util包里面,可以将回车,空格,tab键都看作输入结束
而BufferedReader在io包里面,并且它需要处理IO异常,而且只能以回车结束
除此之外,这二者还有什么不同的点吗?
为什么我看到BufferedReader用的频率比Scanner要高好多,明明Scanner不需要处理IO异常,用起来也简单一些

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

5 个回复

倒序浏览
BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
在创建Scanner类的对象时,需要用System.in作为它的参数,也可以将Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Scanner来作一些处理.
Scanner类中提供了多个方法:
      next():取得一个字符串;
      nextInt():将取得的字符串转换成int类型的整数;
      nextFloat():将取得的字符串转换成float型;
      nextBoolean():将取得的字符串转换成boolean型
回复 使用道具 举报
BufferedReader带临时缓冲区的,用得多,因为他效率高速度快,现在都讲究效率吧
回复 使用道具 举报
wssjdysf 发表于 2014-6-11 23:23
BufferedReader带临时缓冲区的,用得多,因为他效率高速度快,现在都讲究效率吧 ...

所以现在Scanner 没什么人用了吗?
回复 使用道具 举报
Scanner是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器!也就是控制台应用程序最为常用的文本输入方式!

BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
Scanner取得输入数据的依据是空格符:如按下空格键,Tab键或者Enter键,Scanner就会返回下一个输入。所以说Scanner不能输入空格,如果你希望取得含有空格的字符串BufferedReader可以做到。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
tanshion 发表于 2014-6-12 00:09
Scanner是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器!也就是控制台应用程序最为常用 ...

谢谢,知道区别了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马