これが単純な設計上の質問であることを願っています。
コンテクスト:
ソケット接続を介して1つから多数のファイルをダウンロードしている可能性があります。byte[]
それらがソケットから読み取られるときに、私は渡されます。また、それらのバイトを書き込むファイルも知っています。これらのバイトを。でファイルに追加していますFileOutputStream
。ファイルのすべてのバイトが受信されたときにも通知されます。
質問:
次の方が良いですか:
FileOutputStream
すべてbyte
が受信され、書き込まれるまで開いたままにしますFileOutputStream
受信時に適切なファイルにsを追加する新しいファイルを開き、byte
毎回閉じます。
2は、ダウンロードのいずれかで問題が発生した場合(何らかの理由でバイトの取得を停止した場合など)に備えて、書き込みのたびにストリームを閉じるため、私にとっては安全だと感じています。しかし、それはあまり効率的ではないようです。開閉FileOutputStream
の費用がどれだけ高いかわかりません。FileOutputStream
いつ閉じるかを知るために必要な特別な注意以外に、開いたままにしておくことに対する他の副作用はありますか?
前もって感謝します。