在java中如何输入
输入方法分类
Java中常见的输入方式分为三类:标准输入流(System.in)、Scanner类和BufferedReader类。以下分别说明其用法。
使用Scanner类
Scanner类位于java.util包中,适用于简单输入场景。需先创建实例并关联输入源:

import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine(); // 读取整行
int number = scanner.nextInt(); // 读取整数
double decimal = scanner.nextDouble(); // 读取浮点数
注意调用nextLine()前若存在其他输入方法(如nextInt()),需额外调用一次nextLine()消耗残留的换行符。

使用BufferedReader类
BufferedReader位于java.io包中,适合高性能读取。需配合InputStreamReader使用:
import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine(); // 读取整行
int num = Integer.parseInt(reader.readLine()); // 转换为整数
该方法需手动处理类型转换,但执行效率更高。
控制台输入注意事项
- 资源释放:使用后需关闭资源。Scanner调用
scanner.close(),BufferedReader调用reader.close()。 - 异常处理:BufferedReader的
readLine()可能抛出IOException,需用try-catch包裹或声明抛出。 - 输入验证:对用户输入进行有效性检查,避免类型转换异常。
示例代码对比
// Scanner示例
Scanner sc = new Scanner(System.in);
System.out.print("输入字符串: ");
String s = sc.nextLine();
System.out.print("输入整数: ");
int i = sc.nextInt();
// BufferedReader示例
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("输入字符串: ");
String s2 = br.readLine();
System.out.print("输入整数: ");
int i2 = Integer.parseInt(br.readLine());
选择依据:简单交互用Scanner,高性能需求用BufferedReader。






