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

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

慕虎7371278

在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;}...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript