黑马程序员技术交流社区
标题:
Scanner和Reader类
[打印本页]
作者:
张鑫
时间:
2011-7-15 16:23
标题:
Scanner和Reader类
Scanner 和 Reader类在获取键盘输入的数据时有什么区别呢?
以前我用的都是Scanner,个人觉得这个比较方便啊!
用BufferedReader里面有方法有什么好处么?
作者:
匿名
时间:
2011-7-15 20:25
BufferedReader有一个缓冲区,速度要比scanner块。
Scanner取得输入的依据是空格,Tab和回车。如果输入的内容里有空格就不合适了。
BufferedReader是以回车键为依据的。各取所需吧,有时候需要用空格的时候还是用Scanner。
貌似就这点区别。
作者:
匿名
时间:
2011-7-15 20:37
Scanner
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
Reader
用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率或其他功能。
BufferedReader
Reader的子类
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
作者:
张小明
时间:
2011-7-16 00:14
Scanner和BufferReader各有优缺点吧,
用Scanner获取键盘输入:
Scanner scan = new Scanner(System.in);
System.out.println("请输入字符串:");
System.out.println("输入的字符串是:" + scan.next());
Scanner遇到输入包括空格键,Tab键和Enter键,就会返回下一个输入,当字符串里包含空格,就不能完整输入了。
用BufferReader获取键盘输入,这是固定的写法,平时要记下:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入字符串:");
String str = bufferedReader.readLine();
System.out.println("输入的字符串是: " + str);
用BufferReader能返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符,并且比较快,用它的
readLine()方法能读取一行字符串。
[
本帖最后由 张小明 于 2011-07-16 00:24 编辑
]
作者:
匿名
时间:
2011-7-16 00:29
楼上解释得好形象呀!
那要是读其他类型数据,io方式怎么用啊?
作者:
匿名
时间:
2011-7-17 10:53
标题:
回复 5 # 的帖子
读取 其他类型 就需要用到包装类了
io包装类 就提供往各种输出流对象中写入各种类型的数据的类,这个类并没有对应到任何具体的流设备的输出流对象,一定要给它传递一个对应具体流设备的输出流对象。
这样的功能的类就是一个包装类,也叫过滤流类或处理流类。
作者:
徐传任
时间:
2012-9-16 17:25
bucuo...............
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2