2017-11-21 14 views
0

jxlsのXlsReaderクラスがブックを閉じるかどうかを知りたいです。 XLSReaderで利用可能な近いようには方法はありませんJLSLSのXLSReaderはブックを閉じますか?

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

: 私のコードは次のようなものです。ワークブックが閉じているのに内部コードに何か問題があるのを見つけようとしましたが、見つけられませんでした。 これは、readメソッドの内部実装である:私はリソースが解放されていない私のコード内の任意のポイントを見つけることができなかったので、時々、XLSファイルは、アプリケーションによってロックされている

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; 
} 

が、私はかしら問題はjxlsです。明らかに、XLSReaderはブックを閉じません。私のアプリケーションは、inputStreamsを閉じます。アプリケーションはまた、ブックを閉じる必要がありますか?

答えて

1

XLSReaderはブックを閉じません。その理由は、jxls-readerはかなり古いモジュールであり、作成時にPOIにworkbook close()メソッドが存在しないためです。

私はこのメソッドを使用してブックを閉じ、基礎となるファイルリソースを解放する必要があると考えています。だから、jxls-reader issue tracker

+1

問題でバグを報告するのは良いタイミングです:https://bitbucket.org/leonate/jxls-reader/issues/7/xlsreader-doesnt-close-the-workbook –

関連する問題