gpt4 book ai didi

java - JXLS 的 XLSReader 是否会关闭工作簿?

转载 作者:行者123 更新时间:2023-12-02 11:58:41 26 4
gpt4 key购买 nike

我想知道 jxls 中的 XlsReader 类是否关闭工作簿。我的代码是这样的:

XLSReader mainReader = ReaderBuilder.buildFromXML(inputStreamXml);
mainReader.read(inputStreamXLS, beans);

XLSReader 中没有类似 close 的方法。当工作簿关闭时,我试图在内部代码中找到一些点,但我找不到。这是read方法的内部实现:

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 不会关闭工作簿。我的应用程序关闭输入流。应用程序是否还需要关闭工作簿?

最佳答案

XLSReader 不会关闭工作簿。原因是 jxls-reader 是一个相当旧的模块,并且在创建它时 POI 中没有工作簿 close() 方法。

现在我认为该方法应该用于关闭工作簿并释放底层文件资源。因此,现在是在jxls-reader issue tracker中提出错误的好时机。

关于java - JXLS 的 XLSReader 是否会关闭工作簿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47419283/

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