📅  最后修改于: 2023-12-03 15:01:49.603000             🧑  作者: Mango
Java中Scanner和BufferedReader类是两个输入流类,它们可以用来读取控制台或文件中的数据。虽然这两个类都可以实现读取数据的功能,但是它们在很多方面也有所不同。
Scanner类可以用于读取字符、整数、浮点数和字符串等基本类型数据,而BufferedReader类只能读取字符数据。因此,如果需要读取基本类型数据,可以使用Scanner类。
BufferedReader类比Scanner类更快,因为它是使用缓冲区来读取数据的。缓冲区可以减少IO操作,从而提高读取数据的效率。
当输入错误时,Scanner类会抛出InputMismatchException异常,需要程序员自己来处理。而BufferedReader类则会抛出IOException异常,也需要程序员来处理。因此,如果需要更精细的错误处理,可以使用BufferedReader类。
Scanner类通常用于简单的数据输入,例如读取用户输入的字符串或数字。而BufferedReader类通常用于读取大量文本数据,例如读取文件或网络连接的数据。
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = scanner.nextInt();
System.out.println("您输入的整数是:" + num);
scanner.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BufferedReaderDemo {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个字符串:");
String str = br.readLine();
System.out.println("您输入的字符串是:" + str);
br.close();
}
}
以上是Scanner和BufferedReader类的区别介绍和示例代码。根据实际需求选择正确的输入流类可以提高程序的效率和可靠性。