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-compose中volumes的問題2. boot2docker無法啟動3. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””4. 關于docker下的nginx壓力測試5. docker容器呢SSH為什么連不通呢?6. nignx - docker內nginx 80端口被占用7. docker安裝后出現Cannot connect to the Docker daemon.8. java - SSH框架中寫分頁時service層中不能注入分頁類9. node.js - antdesign怎么集合react-redux對input控件進行初始化賦值10. dockerfile - 為什么docker容器啟動不了?

網公網安備