Scanner 和BufferedReader输入实例如下:
import java.io.*;
import java.util.Scanner;
public class C {
public static void main(String []args) throws IOException
{
}
BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
在创建Scanner类的对象时,需要用System.in作为它的参数,也可以将Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Scanner来作一些处理.
Scanner类中提供了多个方法:
如果想读取正行文本,可以使用nextLine()方法;
import java.io.BufferedReader. readLine()方法会返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符.以Enter键为结尾。
使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception).使用BufferedReader来取得输入,理解起来要复杂得多.但是使用这个方法是固定的,每次使用前先如法炮制就可以了
本文来源于:http://blog.sina.com.cn/s/blog_5fd837410100rtwk.html
另外,对于Scanner 和BufferedReader还可以有以下实例:
package com.demo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws Exception {
String m = new String(" ");
int[] a = { 0, 0, 0 };
BufferedReader stdin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("输入三个数(以一个空格分开): ");
m = stdin.readLine();
Scanner scan = new Scanner(m);//将输入的一行文本作为扫描对象
for (int i = 0; i < a.length; i++) {
a[i] = scan.nextInt();
}
System.out.println("输入数为: ");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
对于Scanner ,是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。扫描器可以从实现
Readable
接口的任何对象读取文本。
构造方法:
Scanner(File source) 构造一个新的 Scanner ,它生成的值是从指定文件扫描的。 |
Scanner(File source, String charsetName) 构造一个新的 Scanner ,它生成的值是从指定文件扫描的。 |
Scanner(InputStream source) 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。 |
Scanner(InputStream source, String charsetName) 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。 |
Scanner(Readable source) 构造一个新的 Scanner ,它生成的值是从指定源扫描的。 |
Scanner(ReadableByteChannel source) 构造一个新的 Scanner ,它生成的值是从指定信道扫描的。 |
Scanner(ReadableByteChannel source, String charsetName) 构造一个新的 Scanner ,它生成的值是从指定信道扫描的。 |
Scanner(String source) 构造一个新的 Scanner ,它生成的值是从指定字符串扫描的。 |