2010-01-29 136 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

相關問題