如何使用Apache commons压缩库从ZipArchiveInputStream获取单个文件内容

时间:2013-01-29 16:50:41

标签: java zip apache-commons-compress

我有org.apache.commons.compress.archivers.zip.ZipArchiveInputStream对象, 从中我可以获取每个ArchiveEntry项并获取单个文件的元数据。 但我需要知道将每个文件的内容作为Blob的方法。

使用org.apache.commons.compress.archivers.zip.ZipFile可以完成, 但ZipFile具有带有物理或临时File对象或文件位置的构造函数。 我不想为此创建一个临时文件。

即使有办法将ZipArchiveInputStream转换为ZipFile,它也会解决 问题是间接的。

简而言之,我的要求是从InputStream / Blob读取一个Zip文件,并将单个文件存储为数据库中的BLOB。

仅供参考:我使用的是org.apache.commons :: commons-compress :: 1.4.1

非常感谢任何解决方案/想法/建议。

干杯 琴

1 个答案:

答案 0 :(得分:0)

也许你可以使用standard java.util.zip.ZipInputStream - 它有一个InputStream的构造函数。您可以使用getNextEntry() / closeEntry()来遍历条目,并使用read()来获取解压缩数据。