我正在使用HSSFWorkbook
,我想知道在构造InputStream
对象时应该关闭在哪里使用的HSSFWorkbook
对象。 HSSFWorkbook是否在其构造函数中关闭流?还是我们需要手动关闭它?我们可以在构造函数调用之后立即关闭它吗?即HSSFWorkbook
对象是否仅在其构造函数中使用InputStream
对象?还是将来也可以使用它(在这种情况下,我们无法将其关闭)?谢谢。
public HSSFWorkbook loadSheet(File file) throws FileNotFoundException, IOException {
return new HSSFWorkbook(new FileInputStream(file));
}
最好的方法是使用try-with-resources,如以下示例所示:
HSSFWorkbook
的构造函数没有说明InputStream
是关闭还是保持打开状态,因此您不应该假设它将关闭。另一方面,在构造函数本身内使用的类的构造函数也可以。