我希望這是一個直截了當的設計問題。收到每個數據包的新FileOutputStream?或保持FileOutputStream打開?
語境:
我可以下載一個通過套接字連接多個文件。從插座讀取它時,我正在通過byte[]
。我也知道哪些文件要寫入這些字節。我將這些字節附加到FileOutputStream
的文件中。我也會收到一個文件的所有字節的通知。
問:
是更好地:
- 保持
FileOutputStream
開放,直到所有byte
■找收到並書面 - 打開一個新
FileOutputStream
是追加byte
小號在接收到正確的文件後,每次關閉。
感覺更安全,因爲我將與任何下載關閉流後的情況下,每個寫東西出了問題(像我停止獲取字節出於某種原因)。但它似乎不是很有效率。我很難找出開啓和關閉FileOutputStream
s是多麼昂貴。除了知道何時關閉它需要額外的護理之外,是否還有任何其他的副作用會使FileOutputStream
開放?
在此先感謝。
感謝您解決保持信息流暢通的風險。正如你所建議的那樣,我認爲使用超時看門狗將是我走的路。 – sethro
如果在完成.close()流之後如何將該變量設置爲null,那又如何呢?然後他創建一個新的....更安全,@izaera? – gumuruh