while沒錯 ?對象.read(byte[] b, int off, int len);//方法是這樣的:從對象中讀取len個字節放進b中,每次從b中off位置開始放,.但是老師對于這塊有一個問題沒講清,我的理解是:文件指針從0開始讀取,每次讀取,指針后移一次,讀取完一組字節,此時指針已經移動到了下一個未讀取的位置,下次while循環時,從指針的位置繼續讀取,往放入b中 ?從b的off位置又開始放,知道放滿,每次循環。當read方法讀取到結尾時,返回值為-1,bytes接受該返回值,作為循環結束條件。(可能有錯誤的地方,同求大神指明)
2017-02-16
read(buf,0,b)是把讀到的數據存到buf這個數組里面去,從0到b!返回值是讀的字節數!
2017-02-08
read()返回的是放入數組buf的大小,前面定義buf大小為8*1024,單位字節,假設一個文件大小為13192字節,讀三次才能讀完,第一次讀8192字節,bytes=8192,然后打印出來,第二次,in.read(buf,0,buf.length)=5000,然后前面byte數組中前5000個字節被覆蓋,然后for循環把這5000個字節打印出來,第三次沒東西讀了,返回-1,結束循環。而這時候buf的大小還是8192,第二次只是覆蓋了前面的,AIP也解釋的很不清楚:這些字節將存儲在 b[off] 到 b[off+k-1] 的元素中,不影響 b[off+k] 到 b[off+len-1] 的元素
2017-02-06
。。但是while里面每次都是寫的從0開始的
while((bytes = in.read(buf,0,buf.length)) != -1)
還有個問題 一次就讀取滿了buf這個數組,下次再讀進去不是放不進去了嗎 ?大神講解下
2017-02-05
while沒錯 ?對象.read(byte[] b, int off, int len);//方法是這樣的:從對象中讀取len個字節放進b中,每次從b中off位置開始放,.但是老師對于這塊有一個問題沒講清,我的理解是:文件指針從0開始讀取,每次讀取,指針后移一次,讀取完一組字節,此時指針已經移動到了下一個未讀取的位置,下次while循環時,從指針的位置繼續讀取,往放入b中 ?從b的off位置又開始放,知道放滿,每次循環。當read方法讀取到結尾時,返回值為-1,bytes接受該返回值,作為循環結束條件。(可能有錯誤的地方,同求大神指明)