我想省略创建文件
。我的 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();
现在您可以从 ZipInputStream 中读取扩展的内容,就像读取任何其他 InputStream 一样。
关于java - 有没有办法在不创建 File 对象的情况下转换 DataHandler (带有压缩内容)来获取 InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344352/