我希望这是一个直截了当的设计问题。
语境:
我可能正在通过套接字连接下载一对多文件。byte[]
从套接字读取它们时,我正在传递s 。我也知道将这些字节写入哪个文件。我将这些字节附加到带有FileOutputStream
. 当收到文件的所有字节时,我也会收到通知。
问题:
是否更好:
- 保持
FileOutputStream
打开状态,直到byte
收到并写入所有 s - 打开一个新
FileOutputStream
的,将 s 附加byte
到正确的文件中,然后每次都关闭。
2对我来说感觉更安全,因为我会在每次写入后关闭流,以防任何下载出现问题(比如我由于某种原因停止获取字节)。但它似乎也不是很有效。我很难找出打开和关闭FileOutputStream
s 的成本。FileOutputStream
除了知道何时关闭它需要额外注意之外,保持打开还有其他副作用吗?
提前致谢。