JXLS 的 XLSReader 是否关闭工作簿?
Does the XLSReader from JXLS close the workbook?
我想知道 jxls 的 XlsReader class 是否关闭了工作簿。
我的代码是这样的:
XLSReader mainReader = ReaderBuilder.buildFromXML(inputStreamXml);
mainReader.read(inputStreamXLS, beans);
XLSReader 中没有可用的关闭方法。当工作簿关闭时,我试图在内部代码中找到一些点,但我找不到。
这是读取方法的内部实现:
public XLSReadStatus read(InputStream inputXLS, Map beans) throws
IOException, InvalidFormatException{
readStatus.clear();
Workbook workbook = WorkbookFactory.create(inputXLS);
for(int sheetNo = 0; sheetNo < workbook.getNumberOfSheets(); sheetNo++){
readStatus.mergeReadStatus(readSheet(workbook, sheetNo, beans));
}
return readStatus;
}
有时xls文件被应用程序锁定,因为我在我的代码中找不到任何未释放资源的地方,我想知道是不是jxls的问题。显然 XLSReader 不会关闭工作簿。我的应用程序关闭了 inputStreams。应用程序是否也需要关闭工作簿?
XLSReader 没有关闭工作簿。原因是 jxls-reader 是一个相当旧的模块,在创建它时,POI 中没有工作簿 close() 方法。
现在我认为该方法应该用于关闭工作簿并释放底层文件资源。所以现在是在 jxls-reader issue tracker
中提出错误的好时机
我想知道 jxls 的 XlsReader class 是否关闭了工作簿。 我的代码是这样的:
XLSReader mainReader = ReaderBuilder.buildFromXML(inputStreamXml);
mainReader.read(inputStreamXLS, beans);
XLSReader 中没有可用的关闭方法。当工作簿关闭时,我试图在内部代码中找到一些点,但我找不到。 这是读取方法的内部实现:
public XLSReadStatus read(InputStream inputXLS, Map beans) throws
IOException, InvalidFormatException{
readStatus.clear();
Workbook workbook = WorkbookFactory.create(inputXLS);
for(int sheetNo = 0; sheetNo < workbook.getNumberOfSheets(); sheetNo++){
readStatus.mergeReadStatus(readSheet(workbook, sheetNo, beans));
}
return readStatus;
}
有时xls文件被应用程序锁定,因为我在我的代码中找不到任何未释放资源的地方,我想知道是不是jxls的问题。显然 XLSReader 不会关闭工作簿。我的应用程序关闭了 inputStreams。应用程序是否也需要关闭工作簿?
XLSReader 没有关闭工作簿。原因是 jxls-reader 是一个相当旧的模块,在创建它时,POI 中没有工作簿 close() 方法。
现在我认为该方法应该用于关闭工作簿并释放底层文件资源。所以现在是在 jxls-reader issue tracker
中提出错误的好时机