br.read() 如何在读取字符串结束时给出 -1 或 br.read() 究竟是如何工作的?
Posted
技术标签:
【中文标题】br.read() 如何在读取字符串结束时给出 -1 或 br.read() 究竟是如何工作的?【英文标题】:How is br.read() giving out -1 at the end of reading the string or How exactly does the br.read() works? 【发布时间】:2021-09-16 06:14:44 【问题描述】:这是一个示例程序作为缓冲阅读器的示例,我了解了大部分内容并理解了这样一个事实,即当 (br.read()=-1)
时 while 循环执行停止但不明白为什么会这样?
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();
【问题讨论】:
因为that's howread
is designed to operate,即到达流尾时返回-1。
看一下 Javadoc 就会告诉你。
【参考方案1】:
-1
是一个超出方法返回值正常范围的信号值。它用于表示已到达流尾:
回报: 读取的字符,为 0 到 65535 (0x00-0xffff) 范围内的整数,如果已到达流的末尾,则为 -1
(来自:
BufferedReader.read()
)
简而言之,正如 Federico klez Culloca 在 cmets 中提到的那样,原因是 read()
就是这样设计的。
【讨论】:
以上是关于br.read() 如何在读取字符串结束时给出 -1 或 br.read() 究竟是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章