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. docker 17.03 怎么配置 registry mirror ?2. css3里rotate怎么實現如圖的效果3. javascript - 使用location.href進行頁面跳轉時,并不立即跳轉?4. mysqld無法關閉5. angular.js - angularJS service里面存儲的數據能夠直接和HTML頁面交互嗎?6. html - chrome 下 transiton translateX(10px) 后字體變化7. spring-mvc - eclipse java maven web 項目如何重新編譯 ,不是clean那個 詳情進來看圖 謝謝大家8. javascript - 七牛接口如何在前端調用?9. html - css 的::-webkit-scrollbar 只能夠設置垂直滾動條的寬度??如何設置水平滾動條的寬度??10. javascript - vue-cli項目中,獲取微信access_token時遇到的跨域問題
