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