java - inputstream轉(zhuǎn)為byte數(shù)組 數(shù)組越界
問(wèn)題描述
public static byte[] readInputStream(InputStream inStream) throws Exception {
try {ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len);}inStream.close();return outStream.toByteArray(); }catch (Exception e){e.printStackTrace();throw new Exception(e); }
}
網(wǎng)上都是這種處理方式 寫(xiě)死有越界的可能性
不知道有沒(méi)有其他的處理方式
問(wèn)題解答
回答1:最好的方法是用Apache commons IO的IOUtils.toByteArray(inputStream),一行代碼解決。
回答2:int count = 0;while (count == 0) { count = inStream.available();}byte[] b = new byte[count];inStream.read(b);return b;
相關(guān)文章:
1. node.js - win7下,npm 無(wú)法下載依賴(lài)包,淘寶鏡像也裝不上,求幫忙???2. 為什么autoloader.php文件能知道 $className 代表test3. pdo - mysql 簡(jiǎn)單注入疑問(wèn)4. Python中使用超長(zhǎng)的List導(dǎo)致內(nèi)存占用過(guò)大5. 為什么學(xué)習(xí)PHP6. javascript - axios請(qǐng)求回來(lái)的數(shù)據(jù)組件無(wú)法進(jìn)行綁定渲染7. 雙擊安裝程序,安裝不了8. javascript - dropload+tab頁(yè)面,圖文頁(yè)滾動(dòng)有兩個(gè)滾動(dòng)區(qū)域怎么破?9. 推薦好用mysql管理工具?for mac和pc10. python - 如何用pandas處理分鐘數(shù)據(jù)變成小時(shí)線(xiàn)?
