InputStreamをByte配列に変換する方法 | Java

※当サイトはアフィリエイト広告を利用しています。

Javaでプログラミングをする際に、ファイルやネットワークからデータを読み込む場合には、InputStreamを使用します。

しかし、このInputStreamはバイトストリームであるため、そのままでは扱いにくい場合があります。

そこで、本記事ではInputStreamをByte配列に変換する方法について解説します。

具体的には、ByteArrayOutputStreamを使用する方法を使用する方法を紹介します。

これらの方法をマスターすれば、より効率的にInputStreamからデータを扱うことができるようになります。
スポンサーリンク


InputStremをByte配列に変換する方法

InputStreamをByte配列に変換するには、InputStreamの内容をByteArrayOutputStreamに書き出し、ByteArrayOutputStreamをByte配列に変換すればOKです。

以下、サンプルコードです。
byte[] result;

try {
    File f = new File("FILEPATH");
    InputStream is = new FileInputStream(f);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int length;
    while((length = is.read(buffer)) != -1) {
        bos.write(buffer, 0, length);
    }
    result = bos.toByteArray();
    bos.close();
    is.close();
} catch (Exception e) {

} catch (OutOfMemoryError e) {

}

while文の箇所でInputStreamの内容をByteArrayOutputStreamに書き出してします。その後はtoByteArray()メソッドを使用してByte配列に変換して終わりです。

IOExceptionなど以外にもOutOfMemoryErrorも発生しやすいのでtry-catchしておくと良いでしょう。

まとめ

InputStreamをByte配列に変換する方法を紹介しました。