目录
二、InputStreamReader和BufferedReader方法
为了能让程序中的数据更灵活,可以让用户自己输入想要的数据,
我们需要实现键盘输入数据给程序,然后让程序运行得到结果。
(相比与C++的输入命令”>>“,Java的键盘输入感觉麻烦很多,可能这就是面向对象吧)
在Java中键盘录入一般有3种方法:
一、System.in方法和System.out方法
我们直接用System的in和out方法进行键盘录入,代码如下:
import java.io.IOException;
public class Main {
public static void main(String[] args){
try {
System.out.print("请输入一个字符:");
char inputChar = (char) System.in.read();
System.out.println("成功输入,您输入的字符为:"+inputChar);
}
catch(IOException e){
e.printStackTrace();
}
}
}
下图为程序运行结果:
缺点:
- 只能从键盘获取字符的输入,并且每次只能获取一个字符。
- 获取的数据类型为char类型,想要转为整型或者浮点型会比较麻烦。
二、InputStreamReader和BufferedReader方法
接下来我们使用InputStreamReader和BufferedReader的方法来完成键盘录入功能,主要代码如下:
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args){
try {
System.out.print("请输入数据:");
InputStreamReader isr=new InputStreamReader(System.in);//使用System.in构造InputStreamReader对象
BufferedReader br=new BufferedReader(isr);//将构造的InputStreamReader对象构造BufferedReader对象
String data=br.readLine();//读取输入的一行字符串
System.out.println("成功输入,您输入的数据为:"+data);
}
catch(IOException e){
e.printStackTrace();
}
}
}
下图为运行结果:
优点:
- 可以获取键盘输入的任意字符串
缺点:
- 如果要获取整型和浮点型数据还需要对获取的字符串进行二次转换
三、Scanner类
我们再使用Scanner类对键盘输入进行实现,主要代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串数据:");
String dataString=sc.nextLine();
System.out.println("请输入整型数据:");
int dataInt=sc.nextInt();
System.out.println("请输入浮点型数据:");
double dataDouble=sc.nextDouble();
System.out.println(
"您输入的字符串数据为:"+dataString+
" 您输入的整型数据为:"+dataInt+
"您输入的浮点型数据为:"+dataDouble);
}
}
运行结果如下:
优点:
- 可以获取键盘输入的字符串、整型、浮点型等数据
综合来看,使用Scanner类来完成键盘输入功能最强大。