Scanner & BufferedReader 用法详解

Last renew: April 7, 2022 pm

Scanner & BufferedReader用法详解

注:本文仅为个人学习笔记,无任何版权。

这段时间一直没把java的输入写明白,在该记事里进行一个总结

Scanner

Scanner使用分隔符模式将其输入分解为标记,默认情况下是利用空白进行分割的。之后可以使用不同的next方法将得到的标记转换为不同类型的值。

Scanner位于java.util包中,Scanner的具体用法为

1
2
3
4
5
6
7
8
9
10
11
import java.util.*;

//通过new创建一个Scanner对象
//传入一个System.in参数来读取输入
Scanner sc = new Scanner(System.in);
//输入一个Integer
int a = sc.nextInt();
//读取一整行字符串(以Enter结尾进行分界)
String a = sc.nextLine();
//读取一组字符串(以空格/Tab/Enter进行分界,只要遇到其中之一就返回下一个 //输入)
String a = sc.next();

BufferedReader

BufferedReader位于java.io包中,读取数据比较固定,这样格式也比较单一。只要记住就这一读取数据的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.io.*;


//BufferedReader的readLine()方法必须处理java.o.IOException异常,所以需要在Public static void main后面补充处理。
public static void main(String[] args) throws IOException {
//创建BufferReader对象,从键盘读入
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
//创建BufferReader对象,从文本文件读入
BufferedReader br2 = new BufferedReader(new FileReader("test.txt"));

//读取一行数据并用空格分隔,存入字符串数组
String[] temp = br1.readLine().split("");
}

BufferedReader readLine()方法可能抛出异常,比如要读的文件不存在的话就会抛异常。会抛异常的方法要么在调用的时候用try catch包围,在调用它的时候就写好处理异常的代码,要么就在当前的函数后面加throw声明可能出现的异常,交给调用当前函数的函数处理异常。

BufferedReader读取的数据都以字符串的形式存储,如果需要其他形式的数据,需要进行强制转换。