在Java中,如何将InputStream转换为字节数组(byte )?

我的背景是.net,我对Java很新。 我正在为我们公司的java团队做一些工作,架构师需要我实现一个带有InputStream(java.io)对象的方法。 为了实现方法的目的,我需要将其转换为字节数组。 是否有捷径可寻?

最简单的方法是创建一个新的ByteArrayOutputStream ,将字节复制到该字节,然后调用toByteArray

 public static byte[] readFully(InputStream input) throws IOException { byte[] buffer = new byte[8192]; int bytesRead; ByteArrayOutputStream output = new ByteArrayOutputStream(); while ((bytesRead = input.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } return output.toByteArray(); } 

一个简单的方法是使用org.apache.commons.io.IOUtils.toByteArray( inputStream ) ,参见apache commons io 。