2013-11-09 67 views
1

請解釋爲什麼我們使用-1內while循環爲什麼我們在下面的代碼中使用-1?

<% 
    File file = new File(file1);  
    int ch;  
    strContent = new StringBuffer("");  
    FileInputStream fin = null;  
    try {  
     fin = new FileInputStream(file);  
     while ((ch = fin.read()) != -1) 
      strContent.append((char) ch); 
     fin.close(); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
    System.out.println(strContent.toString()); 

%> 

在上面的代碼解釋了爲什麼我們使用-1,我不明白爲什麼我們使用的是-1

+0

while條件內的語句應該返回0或以上,如果返回低於0讀取文件時,可能是一個錯誤。因爲我們增加了!= 1 – user2971704

回答

1

你應該read the doc:

該方法read()如果文件結束,則返回-1。

因此,當您到達文件末尾時,您要停止while循環。

0

此條件檢查EOF(文件結束)。這是停止閱讀一次,文件已達到。

2

read文檔:

返回:讀入緩衝區的總字節數,或-1,如果沒有更多的數據,因爲該文件的結尾已經到達。

因此,循環結束時,有沒有更多的閱讀

0

這是在Java文檔詳細說明:

返回: 的總字節數讀入緩衝區,或如果由於流的末尾已到達而沒有更多數據,則返回-1。

更多在這裏閱讀:

http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html 
0
public int read() 
     throws IOException 

讀取數據從此輸入流中一個字節。如果還沒有 輸入可用,則此方法會阻止。

指定者:

read in class InputStream 

返回:

下一個數據字節,或-1,如果到達文件的末尾。

拋出:

IOException - if an I/O error occurs. 
相關問題