我想省略创建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/