java 如何键盘输入
键盘输入的常用方法
在 Java 中,键盘输入可以通过多种方式实现,以下是几种常见的方法:
使用 Scanner 类
Scanner 类是 Java 中最常用的键盘输入工具,位于 java.util 包中。它可以读取各种类型的输入,包括字符串、整数、浮点数等。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.print("请输入一个字符串: ");
String str = scanner.next();
System.out.println("输入的整数是: " + num);
System.out.println("输入的字符串是: " + str);
scanner.close();
}
}
使用 BufferedReader 类
BufferedReader 类位于 java.io 包中,它提供了高效的字符输入功能,通常与 InputStreamReader 一起使用。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个字符串: ");
String str = reader.readLine();
System.out.println("输入的字符串是: " + str);
reader.close();
}
}
使用 Console 类
Console 类位于 java.io 包中,专门用于控制台输入输出,适用于需要隐藏输入(如密码)的场景。
import java.io.Console;
public class Main {
public static void main(String[] args) {
Console console = System.console();
if (console == null) {
System.out.println("无法获取控制台对象");
return;
}
String str = console.readLine("请输入一个字符串: ");
System.out.println("输入的字符串是: " + str);
}
}
注意事项
- Scanner 类适合读取各种类型的输入,但需要注意输入类型与读取方法匹配(如
nextInt()读取整数,nextLine()读取整行字符串)。 - BufferedReader 类适合读取大量文本数据,效率较高,但需要处理
IOException。 - Console 类适合需要隐藏输入的场景(如密码),但在某些 IDE(如 Eclipse)中可能无法正常工作。
常见问题
- 输入类型不匹配:使用
Scanner时,如果输入类型与方法不匹配(如用nextInt()读取非整数),会抛出InputMismatchException。 - 缓冲区问题:使用
Scanner的nextInt()或next()后调用nextLine()时,可能会跳过输入。这是因为nextInt()或next()不会消耗换行符,而nextLine()会读取换行符。解决方法是在调用nextLine()前先调用一次nextLine()清空缓冲区。
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
scanner.nextLine(); // 清空缓冲区
String str = scanner.nextLine();
以上方法可以根据具体需求选择使用。







