关于Scanner和BufferReader的区别,网上说的无外乎下面几点区别:
★首先,BufferedReader对象只将回车看作输入结束,得到的字符串;Scanner对象把回车,空格,tab键都看作输入结束,直接用sc.next()得到的是字符串形式。关于这一点,Scanner不是也可以用sc.nextLine()来实现么?
★其次,Scanner是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。Scanner类中提供如下等多个方法:
▲next():取得一个字符串;
▲nextLine():取得一行字符串;
▲nextInt():将取得的字符串转换成int类型的整数;
▲nextFloat():将取得的字符串转换成float型;
▲nextBoolean():将取得的字符串转换成boolean型;
BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。速度要比Scanner快。
★另外,Scanner类位于java.util包中,要引入import java.util.Scanner,但是在Java SE 1.4及以前的版本中,尚没有提供Scanner方法。
BufferedReader类位于java.io包中,要引入java.io这个包,并且使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception).
综上,看起来一般情况下用哪个都可以,不过究竟什么情况下应该用BufferReader什么情况下应该用Scanner呢?求解答。。。
|
|