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. javascript - vuex 参数绑定问题求解2. javascript - Vue 自定义控件v-model双向绑定3. mysql group by多个字段4. python - requests post问题5. javascript - 关于js原生事件的绑定与解除绑定6. objective-c - 使用axios 通过vuex mutation修改数据 getter第一次获取失败 第二次成功7. require后不用使用echo返回到微信服务器 吗8. javascript - js 面向对象9. 前端 - 设计稿为1080*1920,适配多种移动设备,不用rem,怎么写?10. Android Studio Run 问题

网公网安备