java read方法在文件

时间:2016-09-13 18:30:20

标签: java

我正在学习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();  
 }  
}  

3 个答案:

答案 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表示已到达文件末尾。