2016-09-13 53 views
0

我正在学习Java IO。在read()方法有一个通知,说java读取方法在文件末尾返回-1

返回-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

值-1本身并不特殊。有什么特别之处在于还有第二个保证 - 除了文件末尾外,除read()之外的任何内容都不会产生-1。这使值-1成为一个唯一的响应,并让您准确知道到达文件末尾的时间。 – Jeutnarg

回答

2

请先查看文档!

https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#read()

相关章节:

公众诠释阅读() 抛出IOException异常读取单个字符。

覆盖:读取的字符,或-1,如果流的末尾已经达到

抛出:类Reader

返回阅读IOException - 如果发生I/O错误

对于它的价值,这些通常被称为定点值。 Sentinel值用于通过显式无效响应的返回值指示某些特殊情况(例如:-1,因为它显然不是字符)。把它想象成状态或错误代码。在这种情况下,它意味着状态:文件结束。

1

-1仅仅意味着没有什么更多的阅读允许停止获取之前读取流一个IOException

0

-1是到达文件末尾的时间。