色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

輸入流當(dāng)中的read方法和readfully方法的區(qū)別與原理

錢斌斌2年前25瀏覽0評論

輸入流當(dāng)中的read方法和readfully方法的區(qū)別與原理?

1、其實read(byte[] b)方法和readFully(byte []b)都是利用InputStream中read()方法,每次讀取的也是一個字節(jié),只是讀取字節(jié)數(shù)組的方式不同,查詢jdk中源代碼發(fā)現(xiàn)。

2、read(byte[] b)方法實質(zhì)是讀取流上的字節(jié)直到流上沒有字節(jié)為止,如果當(dāng)聲明的字節(jié)數(shù)組長度大于流上的數(shù)據(jù)長度時就提前返回,而readFully(byte[] b)方法是讀取流上指定長度的字節(jié)數(shù)組,也就是說如果聲明了長度為len的字節(jié)數(shù)組,readFully(byte[] b)方法只有讀取len長度個字節(jié)的時候才返回,否則阻塞等待,如果超時,則會拋出異常 EOFException。

3、那么當(dāng)發(fā)送了長度為len的字節(jié),那么為什么用read方法用戶收不全呢,揪其原因發(fā)現(xiàn)消息在網(wǎng)絡(luò)中傳輸是沒那么理想的,發(fā)的那部分字節(jié)數(shù)組在傳送過程中可能在接受信息方的緩存當(dāng)中或者在傳輸線路,極端情況下可能在發(fā)送方的緩存當(dāng)中,這樣就不在流上,所以read方法提前返回了,這樣就造成了各種錯誤。

php 返回byte數(shù)組,輸入流當(dāng)中的read方法和readfully方法的區(qū)別與原理