java - inputstream轉為byte數組 數組越界
問題描述
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); }
}
網上都是這種處理方式 寫死有越界的可能性
不知道有沒有其他的處理方式
問題解答
回答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;
相關文章:
1. vim里的高亮javascript的javascript.vim 已經放到syntax里了,但是不行。2. mysql儲存json錯誤3. android - xml的drawable作背景,是否會產生錯誤4. 我何時應該在Java中使用JFrame.add(component)和JFrame.getContentPane()。add(component)5. javascript - ie11以下單擊打開不了file,雙擊可以。求解?6. html5 - 在Mac里使用vscode,卻無法使用已下載的擴展……7. 為啥獲取不到呀?8. 輸入地址報以下截圖錯誤,怎么辦?9. node.js - node中MYSQL的異步問題10. javascript - 求助一個關于indexedDB的問題
