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