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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© coqns 中级黑马   /  2012-11-27 13:39  /  2016 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 coqns 于 2012-11-28 23:44 编辑

      Java分别可以用Scanner和BufferReader从控制台接收用户输入,但是这2者有什么具体不同呢,我们一般代码中用哪个比较好呢?
      光从表面上来看,Scanner比BufferReader要简洁,代码量要少一些,所以我一般写代码时用的是Scanner。但是网上有人又说BufferReader的效率高......还有人说Scanner是新版jdk里加的,相当于旧的BufferReader肯定会有新的功能或者改进。
      我就纠结了,虽然这也不算什么,这2个随便用一个都可以实现接收输入的功能,但还是想知道,它们之间具体的区别以及优劣,求解答!


评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
古银平 + 1 赞一个!
马海保 + 2 赞一个!

查看全部评分

2 个回复

倒序浏览
用 Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键时,Scanner就会返回下一个输入 .当你输入的内容中间包括空格时,显然,使用Scanner就不能完整的获得你输入的字符串.这时候我们可以考虑使用BufferedReader类取得输入.其实在Java SE 1.4及以前的版本中,尚没有提供Scanner方法,我们获得输入时也是使用BufferReader的.
  BufferedReader类位于java.io包中,所以要使用这个类,就要引入java.io这个包:import java.io.BufferedReader.
  使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception).
  使用BufferedReader来取得输入,理解起来要复杂得多.但是使用这个方法是固定的,每次使用前先如法炮制就可以了.

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
qianfancy 发表于 2012-11-27 13:41
用 Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按 ...

谢谢啊,看来Scanner虽然简洁,但是有获取用户输入有缺陷
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马