java.io.InputStreamからデータを全て読み込んでbyte配列に格納する方法

java.io.InputStreamにはbyte配列を引数に取り,byte配列にデータを読み込んで格納するreadメソッドがありますが,一度の呼び出しでストリームの終わりまで全て読み込むことは保証されません.データを全て読み込んでbyte配列に格納して返すreadAllメソッドは次のように書けます.

public byte[] readAll(InputStream inputStream) throws IOException {
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    byte [] buffer = new byte[1024];
    while(true) {
        int len = inputStream.read(buffer);
        if(len < 0) {
            break;
        }
        bout.write(buffer, 0, len);
    }
    return bout.toByteArray();
}

このページからほとんどそのまま転載しています.
store whole InputStream in a String