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

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

關于的字節問題

為什么可以將in.read()讀到的字節賦給int型的i呢?一個是字節,一個是整型數據,不一樣吧,或者說有什么聯系嗎?

正在回答

2 回答

您說的是in是什么類型的呢,FileInputStream?在FileInputStream的read()方法中有返回值為int類型的重載函數.

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

慕哥2401519 提問者

in是FileInputStream的對象, 那既然返回給b(int型)的是read方法讀到的字節個數,對吧? 那為什么還能在后面的HextoString中將b作為16進制來輸出,這樣子輸出不是只輸出一個整型數據嗎?為什么會輸出字符串的內容
2018-07-08 回復 有任何疑惑可以回復我~
#2

神樂Triste 回復 慕哥2401519 提問者

您對read()這個方法的重載版本可能不是非常了解. 給您看看read()方法的幾個定義: 當read()方法沒有參數時,即循環是:while((b=in.read())!=-1). 此時的read()方法的定義是: Reads a byte of data from this input stream. This method blocks if no input is yet available. 從輸入流讀取一個字節的數據,如果沒有輸入,則此方法結束.
2018-07-09 回復 有任何疑惑可以回復我~
#3

神樂Triste 回復 慕哥2401519 提問者

返回值為: the next byte of data, or -1 if the end of the file is reached. 輸入流中的下一個字節.或者在讀取到文件結尾(EOF)時返回-1. 那什么情況下b是讀取到的字節的個數呢?這種形式:while((b=in.read(buf,0,buf.length))!=-1)
2018-07-09 回復 有任何疑惑可以回復我~
#4

神樂Triste 回復 慕哥2401519 提問者

此時read()方法的重載函數定義為: Reads up to len bytes of data from this input stream into an array of bytes. If len is not zero, the method blocks until some input is available; otherwise, no bytes are read and 0 is returned. 從該輸入流讀取最多len個字節到字節數組中,如果讀取到的字節不是0個.則保存到緩沖區中直到刷新緩沖區.否則不讀取字節返回0.
2018-07-09 回復 有任何疑惑可以回復我~
#5

神樂Triste 回復 慕哥2401519 提問者

這個read(byte[]b,int off,int len)方法的返回值為: the total number of bytes read into the buffer, or -1 if there is no more data because the end of the file has been reached. 返回讀取到緩沖區的字節的總數,或者在到達文件結尾時返回-1. 綜上所述,在read()方法無參數時返回讀取到的一個字節,在參數為read(byte[]b,int off,int len)時返回讀取到的字節數量,而不是您認為的b一直是得到讀取的字節數量.
2018-07-09 回復 有任何疑惑可以回復我~
#6

神樂Triste 回復 慕哥2401519 提問者

字數太多不能一次回復,只能分成幾段了.
2018-07-09 回復 有任何疑惑可以回復我~
查看3條回復

舉報

0/150
提交
取消

關于的字節問題

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

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

幫助反饋 APP下載

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

公眾號

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