java如何键盘输入
在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提供了更高效的读取方式,特别适合读取大量数据:
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 name = reader.readLine();
System.out.println("你好, " + name + "!");
reader.close();
}
}
使用Console类
Console类提供了更安全的密码输入方式,但只能在命令行环境中使用:

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 username = console.readLine("用户名: ");
char[] password = console.readPassword("密码: ");
System.out.println("用户名: " + username);
System.out.println("密码长度: " + password.length);
}
}
处理输入异常
读取输入时可能会遇到异常情况,应该进行适当的异常处理:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.println("你输入的整数是: " + num);
} catch (InputMismatchException e) {
System.out.println("输入的不是整数!");
} finally {
scanner.close();
}
}
}
读取多行输入
当需要读取多行输入时,可以使用以下方法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入多行文本(输入空行结束):");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.isEmpty()) {
break;
}
System.out.println("你输入的是: " + line);
}
scanner.close();
}
}
每种方法都有其适用场景:Scanner适合简单的输入操作,BufferedReader适合大量数据读取,Console适合密码等敏感信息输入。根据具体需求选择合适的方法。






