課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
in,read(buf,0,buf.length)不是一次性讀完嗎?為什么還要使用while循環并且用0xff
2017-09-11
源自:文件傳輸基礎——Java IO流 4-2
正在回答
0到buf.length的長度是你定義的byte數組的長度
你一次性最多讀取的字節長度是byte數組長度,但是你的文件字節數往往是多于你定義的byte數組長度
所以就用到了for循環,0xff是取低八位,八位為一個字節!??!
望采納QAQ
in,read(buf,0,buf.length)?
這個方法的調用只會讀取buf。length個字節 ?如果文件內容大于這個字節數量的話 一次性就讀不完了
就需要循環讀取了
for循環中的bytes是限定了所能存儲的數據大小的,如果讀取到的字節大小超過了你循環中的大小,那么后面的數據就讀取不到了。 但是利用while循環,只要In.read() 不是-1,程序就會一直執行,一直讀取數據
數據很有可能比你那個buf字符數組大的多 不只一個length有可能千千萬萬個length ?不循環,怎么讀的完。
oxff是取低八位,因為讀寫都是以字節為單位的,而8位就是一個字節。
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
5 回答為什么while((b=in.read())!=-1)會產生循環?
4 回答4.3中的Copy方法下為什么要有while?
1 回答關于while循環的疑惑
4 回答while循環是不是存在問題的
1 回答用循環的好處
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-05-22
0到buf.length的長度是你定義的byte數組的長度
你一次性最多讀取的字節長度是byte數組長度,但是你的文件字節數往往是多于你定義的byte數組長度
所以就用到了for循環,0xff是取低八位,八位為一個字節!??!
望采納QAQ
2017-10-21
in,read(buf,0,buf.length)?
這個方法的調用只會讀取buf。length個字節 ?如果文件內容大于這個字節數量的話 一次性就讀不完了
就需要循環讀取了
2017-09-13
for循環中的bytes是限定了所能存儲的數據大小的,如果讀取到的字節大小超過了你循環中的大小,那么后面的數據就讀取不到了。 但是利用while循環,只要In.read() 不是-1,程序就會一直執行,一直讀取數據
2017-09-11
數據很有可能比你那個buf字符數組大的多 不只一個length有可能千千萬萬個length ?不循環,怎么讀的完。
oxff是取低八位,因為讀寫都是以字節為單位的,而8位就是一個字節。