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