我有一个文件的InputStream,并且我使用Apache POI组件从中读取,就像这样:
POIFSFileSystem fileSystem = new POIFSFileSystem(inputStream);
问题在于我需要多次使用相同的流,而POIFSFileSystem在使用后会关闭该流。最佳方法是缓存输入流的数据,然后为不同的POIFSFileSystem提供更多的输入流吗?
编辑1:
我所说的缓存是指将其存储以供以后使用,而不是作为加速应用程序的方法。此外,是将输入流读入数组或字符串,然后为每次使用创建输入流更好呢?
编辑2:
很抱歉重新打开问题,但在桌面和Web应用程序内部工作时,条件有所不同。 首先,我从tomcat web应用程序中获取的org.apache.commons.fileupload.FileItem的InputStream不支持标记,因此无法重置。
其次,我希望能够将文件保留在内存中,以便在处理文件时获得更快的访问速度和更少的io问题。