gpt4 book ai didi

java - 何时关闭 HSSFWorkbook 构造函数中使用的 InputStream 对象?

转载 作者:行者123 更新时间:2023-12-01 18:26:26 26 4
gpt4 key购买 nike

我正在使用 HSSFWorkbook,我想知道应该在哪里关闭构建 HSSFWorkbook 对象时使用的 InputStream 对象。 HSSFWorkbook 是否在其构造函数本身中关闭流?或者我们需要手动关闭它?我们可以在构造函数调用后立即关闭它吗?即,HSSFWorkbook 对象是否仅在其构造函数中使用 InputStream 对象?或者它将来也可以使用它(在这种情况下我们无法关闭它)?谢谢。

public HSSFWorkbook loadSheet(File file) throws FileNotFoundException, IOException {
return new HSSFWorkbook(new FileInputStream(file));
}

最佳答案

HSSFWorkbook 的构造函数没有声明 InputStream 将关闭还是保持打开状态,因此乍一看您不应该假设它会被关闭。然而,深入挖掘,另一方面,在构造函数本身中使用的类的构造函数确实清楚地说明了其行为。

至少在 Apache POI 4.0.0 中,对 new HSSFWorkbook(inputStream) 的调用将导致对 new POIFSFileSystem(inputStream) 的调用,在其实现中,确实似乎总是关闭流,并且构造函数文档也证实了这一点。

这似乎指向您问题的以下答案:

  • HSSFWorkbook 是否会在其构造函数本身中关闭流?是的,间接的。
  • 或者我们需要手动关闭它吗?显然不是,除非他们决定不再依赖 POIFSFileSystem,这似乎不太可能。
  • 我们可以在构造函数调用后立即关闭它吗?显然,是的...但没有必要。
  • HSSFWorkbook 对象是否仅在其构造函数中使用 InputStream 对象?显然是这样。

关于java - 何时关闭 HSSFWorkbook 构造函数中使用的 InputStream 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60224963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com