Java键盘录入三种方法
方法一:Scanner类中的方法
优点一: 可以获取键盘输入的字符串
优点二: 有现成的获取int,float等类型数据,非常强大,也非常方便
方法二:System.in和System.out方法 (使用read)
缺点一: 该方法能获取从键盘输入的字符,但只能针对一个字符的获取
缺点二: 获取的只是char类型的。如果想获得int,float等类型的输入,比较麻烦。
方法三:InputStreamReader和BufferedReader方法 (使用readline)
优点: 可以获取键盘输入的字符串
缺点: 如何要获取的是int,float等类型的仍然需要转换
注意,方法二、方法三都借助于read()方法,其为阻塞时方法,既等待输入后才会继续运行。
以下为程序实例。
/**
* 键盘录入
* @author 段
* @date 2019.12.31
*/
import java.io.*;
import java.util.*;
public class KeyRu{
public static void main(String[] args){//main函数
SystemCharTest();//调用System.in方法
ReadStringTest();//调用readline方法,使用BuffererReader缓冲区与InputStreamReader流
ScannerAllTest();//调用Scanner方法
}
public static void ScannerAllTest(){
Scanner read=new Scanner(System.in);
System.out.println("please enter name");
String name =read.nextLine();//read String keyboard entry
System.out.println("please enter age");
int age=read.nextInt();//读取整数输入
System.out.println("Please entry score");
double score=read.nextDouble();//读取double输入
System.out.println("The information you enter is as follows:");
System.out.print(name+"\t"+age+"\t"+score);
}
public static void SystemCharTest(){
try{ //该方法中有个IOExcepiton需要捕获
System.out.println("Please enter a char");
char c =(char)System.in.read();
System.out.println ("The char that you entry is \t"+ c);
}
catch(IOException ex){
ex.printStackTrace();
}
}
public static void ReadStringTest(){
System.out.println("please enter string");
/*InputStreamReader is = new InputStreamReader(System.in); //new构造InputStreamReader对象
BufferedReader br = new BufferedReader(is); //拿构造的方法传到BufferedReader中 */
// BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//简化
try(BufferedReader br=new BufferedReader(new InputStreamReader(System.in));)//try块退出时,会自动调用res.close()方法,关闭资源。
{ //该方法中有个IOExcepiton需要捕获
String name = br.readLine();
System.out.println("ReadTest Output:" + name);
}
catch(IOException ex){
ex.printStackTrace();
}
}
}
注意:每个方法应单独演示。