2010-01-29 71 views

回答

51

最简单的方法是创建一个新的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(); 
} 
+0

确保在返回之前清空输出流。 – quikchange 2010-05-20 14:17:56

+5

@quikchange:当你使用ByteArrayOutputStream时,不需要它 - 缓冲到哪里? – 2010-05-20 14:41:46

9

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

相关问题