读取Java中的OLE2文件而不缓冲到内存中?
|
我正在使用Apache POI读取OLE2文件(可能是Word,可能是Excel)。使用POIFSFileSystem,我可以打开文件并读取内容。那一点都很好。
但是,它似乎确实在使用大量内存。查看POIFS的一些位,似乎文件的各个位被缓冲到内存中,有时不止一次。
是否可以只读取文件中的位,而无需一次全部加载?我注意到,使用新的文件格式(ooxml),您可以在File和InputStream之间进行选择,并且docs将File构造函数列出为较低的内存。较旧的OLE2 POIFS有类似的东西吗?
我正在使用POI 3.7 Final,以防万一!
没有找到相关结果
已邀请:
1 个回复
素汞读
在3.8 beta 2中,大多数POIDocument类(HSSFWorkbook等)将在其构造函数中接受DirectoryEntry,因此您可以从NPOIFSFileSystem中读取它们。但是,写支持还没有完全结束,因此如果需要写回(内存占用更多),则需要坚持使用POIFSFileSytem。