java如何读取输入
读取控制台输入
Java中读取控制台输入可以通过Scanner类或BufferedReader类实现。Scanner类更简单易用,适合基础输入需求;BufferedReader性能更高,适合处理大量输入。
使用Scanner类
import java.util.Scanner;
public class Main {
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 Main {
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);
}
}
读取文件输入
读取文件内容可以使用Scanner、BufferedReader或Files类。Files类在Java 7及以上版本提供,适合快速读取小文件。
使用Scanner读取文件
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(new File("input.txt"));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
使用BufferedReader读取文件

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Files类读取文件
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(Paths.get("input.txt"));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
读取数字输入
处理数字输入时需要注意输入验证,避免非数字输入导致异常。
读取整数

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
while (!scanner.hasNextInt()) {
System.out.println("输入无效,请重新输入整数!");
scanner.next();
}
int num = scanner.nextInt();
System.out.println("输入的整数是: " + num);
scanner.close();
}
}
读取浮点数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个浮点数: ");
while (!scanner.hasNextDouble()) {
System.out.println("输入无效,请重新输入浮点数!");
scanner.next();
}
double num = scanner.nextDouble();
System.out.println("输入的浮点数是: " + num);
scanner.close();
}
}
读取多行输入
处理多行输入时通常需要设置终止条件,例如空行或特定标记。
读取直到空行
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入多行内容,空行结束:");
StringBuilder sb = new StringBuilder();
String line;
while (!(line = scanner.nextLine()).isEmpty()) {
sb.append(line).append("\n");
}
System.out.println("输入的内容是:\n" + sb.toString());
scanner.close();
}
}
读取特定标记结束
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入多行内容,输入END结束:");
StringBuilder sb = new StringBuilder();
String line;
while (!(line = scanner.nextLine()).equals("END")) {
sb.append(line).append("\n");
}
System.out.println("输入的内容是:\n" + sb.toString());
scanner.close();
}
}






