我该如何处理第三方输入/输出流?

时间:2011-01-23 20:52:35

标签: java coding-style iostream inputstream outputstream

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

假设流非常大(500Mb - 3Gb)并且我对CPU和内存资源紧张,这里对java SO社区提出的问题很少:

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

1 个答案:

答案 0 :(得分:2)

  1. 您应该在流到达结束时关闭该流。如果传递的库不希望你这样做,它应该包装流来忽略close()。
  2. 未封闭的流将资源打开,例如打开的文件无法删除。
  3. 尺寸并不重要。