java - br.read() 如何在读取字符串结束时给出 -1 或 br.read() 究竟是如何工作的?
问题描述
这是一个示例程序作为缓冲阅读器的示例,我得到了大部分内容并理解了 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
是一个超出方法返回值正常范围的信号值。它用于表示已到达流结束:
返回:
读取的字符,为 0 到 65535 (0x00-0xffff) 范围内的整数,如果已到达流的末尾,则返回 -1
所以简而言之,正如 Federico klez Culloca 在评论中提到的那样,原因是因为它是这样read()
设计的。
推荐阅读
- python - 熊猫:为什么我不能在新的计算字段中使用以前创建的列?
- python - 循环遍历特定行值的数据帧行
- sapb1 - SAP Business One - 添加 BP(DI 错误:(-5002)
- git - 控制顺序文件出现在 Git 中
- typescript - TypeScript 是如何知道元组类型的这种联合类型等同于联合的元组类型?
- multithreading - Clojure 使用零个或一个输入的函数运行多个线程
- npm - 错误 #98123 WEBPACK:生成开发 JavaScript 包失败 - 意外令牌
- python - 如何在不实际索引数组的情况下获得已知形状数组的索引元素数?
- suitescript2.0 - 在 SuiteScript 2.0 中使用 AfterSubmit UserEventScript
- php - DDEV 集成 Zendguard 加载程序