Java如何访问键盘
访问键盘输入的常见方法
在Java中,可以通过多种方式获取键盘输入,以下是几种常见的方法:
使用Scanner类
import java.util.Scanner;
public class KeyboardInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入内容: ");
String input = scanner.nextLine();
System.out.println("您输入的是: " + input);
scanner.close();
}
}
使用BufferedReader类
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class KeyboardInput {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入内容: ");
String input = reader.readLine();
System.out.println("您输入的是: " + input);
}
}
使用Console类
public class KeyboardInput {
public static void main(String[] args) {
Console console = System.console();
if (console != null) {
String input = console.readLine("请输入内容: ");
System.out.println("您输入的是: " + input);
} else {
System.out.println("Console不可用");
}
}
}
各种方法的比较
Scanner类适合简单的输入需求,使用方便但性能较低。BufferedReader类性能更好,适合大量输入处理。Console类适合密码输入等安全敏感场景,但在IDE中可能不可用。
处理不同类型输入
对于数字输入,可以使用Scanner的nextInt()或nextDouble()方法:
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字: ");
int number = scanner.nextInt();
System.out.println("您输入的数字是: " + number);
异常处理
键盘输入操作可能抛出异常,应该进行适当处理:
try {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字: ");
int number = scanner.nextInt();
System.out.println("您输入的数字是: " + number);
} catch (Exception e) {
System.out.println("输入错误: " + e.getMessage());
}
高级键盘监听
对于需要实时监听键盘事件的场景,可以使用Java AWT或Swing的KeyListener:

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class KeyboardListener extends JFrame implements KeyListener {
public KeyboardListener() {
addKeyListener(this);
setSize(300, 300);
setVisible(true);
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("按键按下: " + KeyEvent.getKeyText(e.getKeyCode()));
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("按键释放: " + KeyEvent.getKeyText(e.getKeyCode()));
}
@Override
public void keyTyped(KeyEvent e) {
System.out.println("按键输入: " + e.getKeyChar());
}
public static void main(String[] args) {
new KeyboardListener();
}
}






