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

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

關于io字節流問題

59dc86b50001c97c10011334.jpg
59dc86b400014e8810011334.jpg
請問關于這兩種方法我的疑問是
兩圖中的方法 第二個相對于第一個到底有什么好處 以及如何理解

正在回答

3 回答

就是通過while循環,read的指針不斷往后移,開始是開足馬力每次都length長度,只有可能到最后一次,read不足length。由此實現只需要開辟一個很小空間的byte[]就可以讀入很多的字節

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

感覺就是?

第一種方法無論你讀取的文件有多大 ?他就會讀取到byte數組滿了以后就不會再讀取了 ? 所以就只讀取出來byte所能存放的那么多的字節

第二種方法是循環的向byte數組中讀取數據,一直讀取到文件結尾,也就是read方法返回-1的時候

說到好處也就是第二個方法可以設置較小的數組讀取完較大的文件,

因為第一種方法有著數組大小的控制,想要讀取完一個未知文件的話 就要設置一個較大的數組

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

第一個設置的byte數組設置的長度足夠大,所以能夠一次性能夠讀完

但是第二個的設置多了一個while , 即可能一個BYTE數組沒法一次性讀完,所以需要加上判斷條件

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

hy_wang 提問者

相比于第一個 請問第二個 如果in中的字節比buf中的多的話,是不是和第一個一樣。最多只能讀buf.length個字節,其他的就是缺失了嗎。還有就是字節標識是不是從 0 開始 至 buf.length 請問是嗎
2017-10-12 回復 有任何疑惑可以回復我~
#2

慕標7443549 回復 hy_wang 提問者

第二個中 int是返回一共讀入到字節數組的個數,因為可能你所要讀取的字節 一個字節數組不夠用,所以需要讀取到數組中很多次,而int就是你讀取到數組中的個數,前幾次,因為已經讀滿了數組,所以int其實和數組的長度是一致,最后一次可能數組不會讀滿,則int為填充到字節數組中的個數,繼續往下讀則會出現-1的情況,則結束
2017-10-13 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
文件傳輸基礎——Java IO流
  • 參與學習       133821    人
  • 解答問題       1060    個

為您介紹IO流的使用,以及對象的序列化和反序列化的內容

進入課程

關于io字節流問題

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

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

幫助反饋 APP下載

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

公眾號

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