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 line = reader.readLine();
System.out.println("输入的文本是: " + line);
reader.close();
}
}
使用 Console 类输入密码
Console 类专门用于控制台交互,特别适合需要隐藏输入的密码场景。
import java.io.Console;
public class Main {
public static void main(String[] args) {
Console console = System.console();
if (console != null) {
char[] password = console.readPassword("请输入密码: ");
System.out.println("密码已输入(不显示)");
// 处理密码...
// 安全清除密码数组
java.util.Arrays.fill(password, ' ');
} else {
System.out.println("当前环境不支持Console");
}
}
}
命令行参数输入
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 + "!");
}
}
文件输入
从文件中读取数据也是常见的输入方式,可以使用 Scanner 或 BufferedReader 配合 FileReader。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try {
Scanner fileScanner = new Scanner(new File("input.txt"));
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
System.out.println(line);
}
fileScanner.close();
} catch (FileNotFoundException e) {
System.out.println("文件未找到");
}
}
}
每种输入方法适用于不同的场景,选择取决于具体需求。Scanner 适合简单的控制台输入,BufferedReader 适合大量数据读取,Console 适合密码输入,命令行参数适合程序启动时配置,图形化输入适合 GUI 程序,文件输入适合处理持久化数据。






