概述
java在运行时接受用户输入的方法主要可以通过两个类来实现:
- Scanner类
- BufferReader类
关于Scanner类
Scanner类是一个基于正则表达式的文本扫描器,它可以从文件,输入流,字符串中解析出基本类型值和字符串值。
Scanner类提供了多种构造函数,因此他可以根据不同的构造函数接受不同的数据源:文件,输入流和字符串等。
Scanner提供的主要方法:
hasNext()方法:判断是否还有下一个输入项。此外还提供了haxNextXxxx()方法,这个Xxxxx方法可以使Int、Long等等
next()方法:获取下一个输入项。此外还提供了nextXxxx()。
useDelimiter()方法:设置分隔符。
事实上,Scanner还提供了两个简单的方法来进行逐行读取
boolean hasNextLine():返回输入源中是否还有下一行
String nextLine():返回输入源中中下一行的字符串。
exp:
package com.java.environment;
import java.util.Scanner;
public class scanner {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//Scanner sc=new Scanner(new File("test.c"));
while(sc.hasNext()){
System.out.println(sc.next());
}
sc.close();
}
}
关于BufferedReader类
这个类是比较老的类了,BufferedReader是Java IO流中的一个字符、包装流,它必须建立在另一个字符流的基础上。
System.in本身是字节流,所以使用BufferedReader的话要使用InputStreamBuffer将输入字节流包装成字符流才能使用。
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamBuffer(System.in));
String line = null;
while((line = br.readLine())!=null){
System.out.println("用户输入的内容是:"+line);
}
}