一.為什么intputStream.read()返回int
inputStream.read()的返回值是一個int,但它每次讀取一個字節,原因是因為C++有無符號byte,那么它的范圍就是【0-255】,但java沒有無符號byte
所以Java的byte就是【-128-127】,如果用byte來接收那就會有一些數字會被表示為負數,所以就用int來接收。
二.為什么intputStream.read(byte[])卻可以用byte
因為其實byte的本質還是字節碼,保存了原始的二進制數據,只不過是打印出來后調用了toString()方法所以變成了十進制數字,下面是對toString()方法的
專業解釋。只要不用打印用byte是沒問題的,所以可以用byte數組來接收
java.lang.Byte.toString() 返回一個代表此字節的String對象的值。該值被轉換為符號的十進制表示法,並以字符串形式返回,完全一樣,如果字節值被賦予作為參數傳遞給了 toString(byte) 方法。原文出自【易百教程】,商業轉載請聯系作者獲得授權,非商業請保留原文鏈接:https://www.yiibai.com/java/lang/byte_tostring.html
最后歡迎加入我自建的學習資料分享群,群里有各種免費的資料,java,大數據,匯編,分布式,數據庫,框架等,網路安全等等,進群即可在文件中免費下載
沒有任何套路 ,群號:830101760