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 を使用している理由がわかりません

4

5 に答える 5

2

のドキュメントread:

戻り値:バッファーに読み込まれた合計バイト数、またはファイルの終わりに達したためにデータがなくなった場合は -1。

したがって、読むものがなくなったらループは終了します

于 2013-11-09T11:13:07.017 に答える
0

この条件は、EOF (End Of File) をチェックします。つまり、一度読み取りを停止すると、ファイルの終わりに達します。

于 2013-11-09T11:12:49.827 に答える
0

これは、Java ドキュメントで詳しく説明されています。

戻り値: バッファに読み込まれた合計バイト数、またはストリームの終わりに達したためにデータがなくなった場合は -1。

ここでもっと読む:

http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html
于 2013-11-09T11:13:25.173 に答える
0
public int read()
         throws IOException

この入力ストリームから 1 バイトのデータを読み取ります。入力がまだ利用できない場合、このメソッドはブロックします。

指定者:

read in class InputStream

戻り値:

データの次のバイト、またはファイルの終わりに達した場合は -1。

スロー:

IOException - if an I/O error occurs.
于 2013-11-09T11:17:45.730 に答える