亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

buf是byte數組,不管buf多大,只要按照下面這么寫就一定會把文件內容讀完是么

while((bytes=fis1.read(buf,?0,?buf.length))!=-1)

正在回答

2 回答

每次讀取buf數組長度的數據,當讀到文件末尾時,因為二進制流讀取是讀0或1,當讀到-1時說明文件已經讀到末尾,此時文件讀取完畢。上面的循環就是在反復讀取文件,直到讀到文件末尾的-1,文件讀完。

0 回復 有任何疑惑可以回復我~
#1

泰蘭德 提問者

非常感謝!
2015-08-30 回復 有任何疑惑可以回復我~
#2

發呆的阿呆

bytes表示的是返回時個數,為何會出現-1呢?
2015-10-24 回復 有任何疑惑可以回復我~

每判斷一次while循環的條件,就會對文件進行一次讀?。ū4嬖诰彌_數組中),直到最后,文件讀取完畢,bytes==-1,循環結束……

1 回復 有任何疑惑可以回復我~
#1

發呆的阿呆

bytes怎么會等于-1呢?
2015-10-24 回復 有任何疑惑可以回復我~
#2

Javer_ 回復 發呆的阿呆

因為bytes實際調用的是read方法,正常情況下,read方法會將字節數返回給bytes,但是一旦到了文件末尾,read方法內部就會強制返回一個-1給bytes,這個時候bytes的意義就變了,不再是字節數了
2015-12-01 回復 有任何疑惑可以回復我~
#3

Darkchaox 回復 發呆的阿呆

當指針到達文件末尾,再次調用read方法時返回的值是-1。注意是再次調用。
2016-03-13 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

buf是byte數組,不管buf多大,只要按照下面這么寫就一定會把文件內容讀完是么

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號