2019-09

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


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