下面是一个示例程序,作为缓冲读取器的一个示例,我了解了其中的大部分内容,并且理解了while循环在 (br.read()=-1)
但我不明白为什么会这样?
import java.io.*;
public class BufferedReaderExample {
public static void main(String args[])throws Exception{
FileReader fr=new FileReader("D:\\testout.txt");
BufferedReader br=new BufferedReader(fr);
int i;
while((i=br.read())!=-1) //<<<<I'm talking about this here
{
System.out.print((char)i);
}
br.close();
fr.close();
}
}
1条答案
按热度按时间ncgqoxb01#
这个
-1
是超出方法返回值正常范围的信号值。它用于发出信号,表示已到达流的末端:返回:
读取的字符,范围为0到65535(0x00-0xffff)之间的整数,如果已到达流的末尾,则为-1
(来自:
BufferedReader.read()
)简言之,正如federico klez culloca在评论中提到的,原因是因为
read()
是设计的。