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-machine添加一個已有的docker主機問題2. docker - 如何修改運行中容器的配置3. mac里的docker如何命令行開啟呢?4. 關于docker下的nginx壓力測試5. angular.js - angularjs的自定義過濾器如何給文字加顏色?6. docker安裝后出現Cannot connect to the Docker daemon.7. java - bootstrap table分頁以后,下面的分頁按鈕消失怎么辦并且如何返回總頁數8. java - 安卓實現熄屏功能。9. 在MySQL數據庫中查詢表里的記錄條數的代碼怎么寫?10. 導入項目之后登錄界面驗證碼彈不出來
