我有一个文件的 InputStream,我使用 apache poi 组件来读取它,如下所示:
POIFSFileSystem fileSystem = new POIFSFileSystem(inputStream);
问题是我需要多次使用同一个流,并且 POIFSFileSystem 会在使用后关闭流。
缓存输入流中的数据然后将更多输入流提供给不同的 POIFSFileSystem 的最佳方法是什么?
编辑1:
缓存是指存储以备后用,而不是作为加速应用程序的一种方式。将输入流读入数组或字符串然后为每次使用创建输入流是否更好?
编辑2:
很抱歉重新提出问题,但在桌面和 Web 应用程序中工作时条件有所不同。首先,我从我的 tomcat Web 应用程序中的 org.apache.commons.fileupload.FileItem 获得的 InputStream 不支持标记,因此无法重置。
其次,我希望能够将文件保存在内存中,以便在处理文件时更快地访问和减少 io 问题。