为了账号安全,请及时绑定邮箱和手机立即绑定

关于BufferedReader中readLine读取最后一行的问题

关于BufferedReader中readLine读取最后一行的问题

慕斯王 2019-04-19 16:29:27
publicstaticvoidmain(String[]args)throwsException{BufferedReaderin=newBufferedReader(newFileReader("Test3.txt"));Stringline=null;while((line=in.readLine())!=null){System.out.println(line);}}想问一下通过readLine方法读取一个文本行。通过下列字符之一即可认为某行已终止:换行('\n')、回车('\r')或回车后直接跟着换行,但是在最后一行的时候并没有换行或者回车的字符啊,此时为什么会读取到最后一行呢?按理说最后一行是不应该被读取到的。求解!
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

在BufferedReader中有一个private方法是用来判断是否到达Stream的结尾的,如下:
@returnthenumberofcharsreadintothebuffer,or-1iftheendofthesourcestreamhasbeenreached.
privateintfillBuf()throwsIOException{
而在readLine()中有一段是这么写的:
while(true){
pos=end;
if(fillBuf()==-1){
//Ifthere'snomoreinput,returnwhatwe'vereadsofar,ifanything.
return(result.length()>0)?result.toString():null;
}
...
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 4038 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信