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. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!2. docker gitlab 如何git clone?3. docker安装后出现Cannot connect to the Docker daemon.4. docker内创建jenkins访问另一个容器下的服务器问题5. dockerfile - 为什么docker容器启动不了?6. nignx - docker内nginx 80端口被占用7. 在mac下出现了两个docker环境8. 如何解决docker宿主机无法访问容器中的服务?9. debian - docker依赖的aufs-tools源码哪里可以找到啊?10. docker 17.03 怎么配置 registry mirror ?