java如何接受输入
从控制台接收输入
使用 java.util.Scanner 类可以方便地从控制台接收输入。Scanner 类提供了多种方法来读取不同类型的数据。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串: ");
String str = scanner.nextLine();
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.println("输入的字符串是: " + str);
System.out.println("输入的整数是: " + num);
scanner.close();
}
}
从文件接收输入
Scanner 类也可以用于从文件中读取输入。需要先创建一个 File 对象,然后将其传递给 Scanner 的构造函数。

import java.io.File;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
File file = new File("input.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
}
}
使用 BufferedReader 接收输入
对于大量输入数据,BufferedReader 比 Scanner 更高效。BufferedReader 通常与 InputStreamReader 一起使用。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个字符串: ");
String str = reader.readLine();
System.out.println("输入的字符串是: " + str);
}
}
从命令行参数接收输入
Java 程序可以通过 main 方法的 args 参数接收命令行参数。

public class Main {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("第一个参数是: " + args[0]);
} else {
System.out.println("没有提供参数");
}
}
}
使用 JOptionPane 接收图形界面输入
对于图形界面应用程序,可以使用 JOptionPane 来接收用户输入。
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String name = JOptionPane.showInputDialog("请输入你的名字:");
JOptionPane.showMessageDialog(null, "你好, " + name + "!");
}
}
处理输入异常
在处理用户输入时,应该考虑可能发生的异常情况,如输入类型不匹配等。
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 (Exception e) {
System.out.println("输入的不是有效整数");
} finally {
scanner.close();
}
}
}
每种方法都有其适用场景:控制台输入适合简单交互,文件输入适合批量数据处理,BufferedReader 适合高性能需求,命令行参数适合脚本调用,图形界面输入适合用户友好的应用程序。根据具体需求选择合适的方法。






