2

有一个项目主要处理输入/输出流。所以我必须将流作为参数传递并从第三方库接收它们。我读过Good design: How to pass InputStreams as argument? 关闭 Java InputStreams,但我不能 100% 确定第三方是否共享相同的编码值并遵循最佳设计模式(特别是 - “打开流的人应该关闭流”)

假设流非常大(500Mb - 3Gb)并且我的 CPU 和内存资源很紧张,这里有几个 Java SO 社区的问题:

  1. 我应该尝试关闭从第三方库获得的流吗?
  2. 未关闭的流可能带来哪些危险影响(不包括额外的 GC 工作量)
  3. 这些影响是否与流大小成正比?
4

1 回答 1

2
  1. 当它到达末尾时,您应该关闭流。如果传递的库不希望你这样做,它应该包装流以忽略 close()。
  2. 未关闭的流使资源保持打开状态,例如无法删除打开的文件。
  3. 大小并不重要。
于 2011-01-23T20:57:19.167 回答