Java 输入:与键盘交互的全面指南188


Java 提供了强大的输入/输出 (I/O) 机制,允许程序与用户轻松交换数据。在 Java 中,使用键盘获取用户输入主要通过以下两个类实现:Scanner 和 BufferedReader。

使用 Scanner 类

Scanner 类是 Java I/O 包中的一个强大工具,用于从各种输入源(包括键盘)读取原始数据类型和字符串。要使用 Scanner 类:
导入 包。
创建 Scanner 对象,并将其初始化为 流,以表示键盘输入。
使用 Scanner 对象的 nextXxx() 方法读取不同类型的数据(如 nextInt()、nextDouble()、nextLine())。
关闭 Scanner 对象,以释放系统资源。

示例:



import ;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner();
// 读取整型
int n = ();
// 读取双精度
double d = ();
// 读取一行字符串
String str = ();
// 关闭 Scanner
();
}
}

使用 BufferedReader 类

BufferedReader 类也是 包中的一个类,它提供了字符流的高级读取功能。与 Scanner 类相比,它提供更细粒度的输入控制。

要使用 BufferedReader 类,请遵循以下步骤:
导入 包。
创建 BufferedReader 对象,并将其初始化为 InputStreamReader() 的包装器,以表示键盘输入。
使用 BufferedReader 对象的 readLine() 方法读取一行文本,包括换行符。
关闭 BufferedReader 对象,以释放系统资源。

示例:



import ;
import ;
public class BufferedReaderExample {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader());
// 读取一行文本
String line = ();
// 关闭 BufferedReader
();
} catch (IOException e) {
();
}
}
}

比较 Scanner 和 BufferedReader

Scanner 类和 BufferedReader 类都用于从键盘获取用户输入,但它们具有不同的优点和缺点:| 特点 | Scanner | BufferedReader |
|---|---|---|
| 易用性 | 更加用户友好 | 需要处理异常 |
| 数据类型支持 | 支持原始类型和字符串 | 仅支持字符串 |
| 细粒度控制 | 有限 | 更灵活 |
| 内存消耗 | 较高 | 低 |

其他输入方法

除了 Scanner 和 BufferedReader 之外,还有其他方法可以获取键盘输入,包括:
Console 类:Java 9+ 中引入的较新类,提供更高级别的控制台输入/输出功能。
() 方法:返回一个 Console 对象,允许访问键盘输入和控制台输出。
JavaFX GUI 应用程序类:如 TextField 和 TextArea,提供图形化的输入字段,用于收集用户输入。

选择最适合特定需求的输入方法至关重要。对于简单的输入需求,Scanner 类是推荐的选择。对于更复杂的需求,BufferedReader 类或其他高级方法可能是更好的选择。

2024-12-05


上一篇:Java 数据输出流:写入字节导向数据的终极指南

下一篇:Java 中的大数据存储