RM-BLOG

IT系技術職のおっさんがIT技術とかライブとか日常とか雑多に語るブログです。* 本ブログに書かれている内容は個人の意見・感想であり、特定の組織に属するものではありません。/All opinions are my own.*

【Java】InputStream#readしたバイトデータを出力するときの注意点(自分用備忘録)

InputStream#readしたバイトデータをByteArrayOutputStreamにwriteして、後でFileOutputStreamでファイルに出力する、というのは、割とよく見る作りだけれども、InputStream#readの結果データを格納したbyte配列をそのままFileOutputStreamに渡すと出力結果に余分なデータが含まれる可能性がある。
これ、昔から割とありがちで、そのたびに毎回実装に若干悩むのだが、ググってみた感じあんまり「これ」といった回避策が載ってるサイトがなかったので、自分用の備忘録として残す。
(まあ、Java1.9以降では、全データ読み込み専用のメソッドも用意されてるらしいので、そっち使えばこんなこと考えなくても済みそうだが…)


続きを読む