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. PHP單例模式2. angular.js - ng-grid 和tabset一起用時,grid width默認特別小3. vue頁面跳轉實現頁面緩存操作4. angular.js - angular chosen下拉菜單組件 ,編輯參數不顯示5. angular.js - 怎么用Angularjs 來實現如圖6. javascript - json 雙層嵌套 ,如何遍歷拼接字符串?7. javascript - imgzoom插件所引發的bug血案!!!!8. jquery - jquey tabs ajax load html 沖突問題?9. javascript - 使用 vuex-router-sync寄存路由信息,this.$router params 不能賦值?10. java - ssm整合 啟動表現層報錯。。。
