public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new FileReader("Test3.txt"));
String line =null;
while((line=in.readLine())!=null)
{
System.out.println(line);
}
}
想问一下通过readLine方法读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行,但是在最后一行的时候并没有换行或者回车的字符啊,此时为什么会读取到最后一行呢?按理说最后一行是不应该被读取到的。求解!
在BufferedReader中有一个private方法是用来判断是否到达Stream的结尾的,如下:
@return the number of chars read into the buffer, or -1 if the end of the source stream has been reached.
而在readLine()中有一段是这么写的:
这个可以看下BufferedReader的源码,实际上还有一种情况,就是读到了文件结束位置(也就是最后一行),即使没有\n和\r也会返回这一行。