關於inputStream.read()返回值的問題


一.為什么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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM