Open4

バイトストリームとは一体なんなのか?

ふじしろふじしろ

例えばjavaで画像ファイルをブラウザで表示するときにはこんな流れになっている?

  1. ローカルに画像ファイルがある
  2. 画像ファイルを読み込み
  3. 画像ファイルをバイト化(input stream)
  4. バイト化したデータをレスポンスボディに詰める(output stream)
  5. ブラウザにレスポンスとして渡す
  6. ブラウザがバイト化されたデータを読み込み
  7. 画像ファイルを生成
  8. 画面に描画

こういう理解でいいんだろうか?

ふじしろふじしろ

画像ファイルの読み込み方法

  1. Resourceインスタンスを生成
  2. 生成したResourceインスタンスにリソースを格納
  3. InputStreamインスタンスを生成
  4. 生成したInputStreamインスタンスにリソースのストリームを格納
    • ResourceクラスのgetInputStreamメソッドを活用する
  5. byte[]インスタンスを生成する
  6. 生成したbyteインスタンスにストリームをバイト配列化して格納する
    • IOUtilsクラスのtoDyteArrayメソッドを活用する

参考

また、FilesクラスのreadAllBytes()を用いる方法もあるようだが、この方法は要領の大きいファイルを扱うときにメモリ不足となりやすいことと、処理の流れを把握しにくいためにあまり推奨されていないように感じた