Java读取输入流和文件内容——BufferedReader


Java不像C那样直接用 scanf 即可从控制台读入数据,读取数据很麻烦。这里推荐 BufferedReader ,可以从 控制台文件 中读取数据。需要 import java.io.BufferedReaderimport java.io.InputStreamReader

从控制台读取数据

readline() 方法

一次可以读取一行,以换行符作为一行的结束(返回的字符串不包括换行符),然后继续往下读。

捕获异常

如果不使用 throw,则可以使用 try-catch 语句,不过需要注意:catch的是 IOException,也可以是 Exception
只不过 Exception 是各种 Exception 的父类,包括 IOException, NumberFormatException 等等,范围比较宽泛。(仍然推荐具体的IOException

  • 一般情况下,先捕获较为具体的 Exception ,然后再是总的 Exception

1. 代码示例:只读一行

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
	String data = br.readline();
} catch (IOException e) {
	e.printStackTrace();
}

2. 代码示例:读取多行
这里注意读取格式,只要读取一行后,就不会再读取这一行了,所以不能直接用 br.readline() != null 来判断,需要先存到一个变量,再与null进行比较

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String a = null;
try {
	while ((a = br.readline()) != null) {
		System.out.println(a);
	}
catch (IOException e) {
	e.printStackTrace();
}

读取文件内容

BufferedReader的参数为FileReader,顾名思义,是读文件用的
可以用readLine一行行地读取
参考:How to read a file line by line
BufferedReader API

try {
	BufferedReader br = new BufferedReader(new FileReader("file.txt"));
	String line;
	while ((line = br.readLine()) != null) {
		System.out.println(line);
	}
} catch (IOException e) {
	e.printStackTrack();
}

关于 try-catch 语句的拓展

try-catch 中的变量有作用域,在该语句中定义的变量是不能拿到语句外使用的,所以需要在语句外定义变量,然后在 try-catch 中修改

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值