我正在学习java IO。在read()
方法中有一条说明
它在文件末尾返回-1
我不知道这意味着什么? 以及-1在文件末尾的重要性
示例:
import java.io.*;
class Simple{
public static void main(String args[])throws Exception{
FileReader fr=new FileReader("abc.txt");
int i;
while((i=fr.read())!=-1)
System.out.println((char)i);
fr.close();
}
}
答案 0 :(得分:2)
请先检查文档!
https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#read()
相关部分:
public int read() throws IOException读取单个字符。
覆盖:在类Reader中读取
返回:字符读取,,如果流的结尾已经为-1 达到强>
抛出:IOException - 如果发生I / O错误
对于它的价值,这些通常被称为哨兵值。 Sentinel值用于通过返回值指示某些特殊条件,该返回值是明显无效的响应(例如:-1,因为这显然不是字符)。可以把它想象成状态或错误代码。在这种情况下,它表示状态:文件结束。
答案 1 :(得分:1)
-1
只是意味着没有其他内容可供阅读允许在获得IOException
之前停止阅读流。
答案 2 :(得分:0)
-1表示已到达文件末尾。