FileInputStream read函數何時返回-1


read函數,返回-1
例子:三個字節(1,2,3)的文件,每次讀兩個字節,第三次才會返回-1,
第一次讀取到的是 (1,2),read返回 len = 2;

第二次讀取到的是(3,2),   read返回 len = 1;

第三次讀取到的是(3,2),   read返回 len = -1;


read源碼:

  public int read(byte[] b) throws IOException {
        int getData = read();
        if (getData==-1) {
            return -1;
        }else{
            b[0] = (byte)getData;
            for (int i = 1; i < b.length; i++) {
                getData = read();
                if(-1==getData)
                    return i;
                b[i] = (byte)getData;
            }
        }
        return b.length;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM