我想省略创建File。我的DataHandler对象包含一个带有一个条目的zip文件。我需要正确获取InputStream可以读取压缩内容。

实际上,我的“流程”如下所示:DataHandler-> File-> ZipFile-> first ZipEntry.getInputStream()。

有没有一种方法不创建File/ZipFile对象?

最佳答案

是的,您可以改用ZipInputStream

编辑:这取决于您的压缩内容如何存储在您的DataHandler中。

如果存储在字节数组中...

byte[] zippedContent = dataHandler.getContent();
InputStream in = new ByteArrayInputStream(zippedContent);
ZipInputStream zipIn = new ZipInputStream(in)
ZipEntry zipEntry = zipIn.getNextEntry();


如果它提供对InputStream的访问权限...

ZipInputStream zipIn = new ZipInputStream(dataHandler.getInputStream());
ZipEntry zipEntry = zipIn.getNextEntry();


现在,您可以像其他任何InputStream一样从ZipInputStream中读取扩展的内容。

关于java - 有没有一种方法可以转换DataHandler(带压缩内容)而不创建File对象来获取InputStream?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13344352/

10-11 02:22