zipEntry.getSize()=-1
1、问题情景
需要监控特定邮箱邮件, 解析邮件中的zip附件, 然后解析zip文件。
拿到zipInputStream之后,zipEntry=zipInputStream.getNextEntry();
zipEntry.getSize()=-1
zipEntry.getExtra()=null
这样就拿不到文件数据流
2、解决方案
查看ZipInputStream的官方文档
getNextEntry() ,读取下一个ZIP文件条目,并将流定位在条目数据的开头。
所以猜测调用zipInputStream.getNextEntry()之后zipInputStream当前定位的文件流位置就是zipEntry代表的文件流的开始位置。
但是结束位置是哪里?试一试把流全部读取出来生成文件,结果能正常生成需要的文件。
不需要考虑getSize=-1
错误理解:zipInputStream中的流是zip包里面所有的文件流, 每个文件需要指定流开始,结束位置才能正确读取。
正确结论:zipInputStream调用getNextEntry之后,zipInputStream会正确定位到当前文件的数据流位置, 且只加载当前文件的数据流,全部读取出来生成文件即可。
zipEntry.getSize()=-1相关推荐
- getsize java_Java ZipEntry getSize()用法及代码示例
getSize()函数是java.util.zip软件包的一部分.该函数返回作为参数传递的特定ZipEntry的未压缩大小,如果未知则返回-1.函数签名: public long getSize() ...
- 解决ZipEntry.getSize()返回-1的问题
今天要写一个测试程序,模拟业务流程,解压缩zip文件,将InputStream流上传到对象存储集群上.以下是生成zip文件的代码: int size_k = 100; int num = 100; S ...
- Java读取ZIP文件ZipEntry.getsize()总是返回-1?
解决方法(Code)在文章最后面,耐心看完 今天在项目中遇到一个问题,有一个需求是需要验证下载的ZIP文件,解压读取ZIP文件夹内部的文件,文件名称以及大小. 网上搜了下,发现,不用解压可以直接读取, ...
- java定义一个getsize方法,long getSize()
long getSize() 描述 (Description) java.util.zip.ZipEntry.getSize()方法返回条目数据的未压缩大小,如果未知,则返回-1. 声明 (Decla ...
- android 汉字编码,Android解压中文乱码
在Android中内置有解压的工具,一般可以使用下面的方法解压: �注意import的包: 因 import java.util.zip.ZipEntry; import java.util.zip. ...
- Android签名机制之---签名验证过程详解
一.前言 今天是元旦,也是Single Dog的嚎叫之日,只能写博客来祛除寂寞了,今天我们继续来看一下Android中的签名机制的姊妹篇:Android中是如何验证一个Apk的签名.在前一篇文章中我们 ...
- 在Java 8中使用Stream API列出ZIP文件的内容
在Java 8 java.util.zip.ZipFile配备了stream方法,该方法可以非常轻松地浏览ZIP文件条目. 在此博客文章中,我将展示许多示例,这些示例显示了我们可以如何快速浏览ZIP文 ...
- java压缩/解压缩zip格式文件
因为项目要用到压缩.解压缩zip格式压缩包,只好自己封装一个,对于网上流行的中文乱码的问题,本文的解决方法是用apache的包代替jdk里的.基本上还是比较好用的. 废话少说,直接上代码. 1 pac ...
- 递归的使用不当 导致 压缩文件不能压缩二级目录
错误展示: 错误代码: import java.io.*; import java.util.Enumeration; import java.util.zip.ZipEntry; import ja ...
- Apache工具库——Apache Commons的使用
Apache Commons是Apache开源的一个java组件库,其中包含了大量子项目,其中常用的组件有: 组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性 ...
最新文章
- Redux 学习总结 (React)
- 优化老手分享网络优化中的4大方法
- 知识图谱基础知识之一——人人都能理解的知识图谱
- telnet到设备里 php_PHP自动生成设备周检修计划
- WPF通用窗体模板【2】
- Java判断一个数是不是快乐数
- mybatis-plus根据多个字段排序_PHP中Thinkphp5框架的多字段排序
- java多线程在单例模式下是否需要同步
- 我的世界装mod要下java_【新人必看教程】我的世界HMCL下载安装mod模组
- Unity热更之旧项目救星——Xlua热补丁修复
- 微分几何笔记(1)——参数曲线、内积、外积
- android6最新版本,安卓版“AirDrop”发布,安卓6版本以上都能用!
- 径向基函数拟合(RBF Fitting)
- iOS apple 登录
- tensorflow框架下,多进程model.predict(x)无响应/暂停/无输出
- 菁搜FTP搜索引擎总体框架
- win7产生大量evtx文件_Win7退役:用户还在坚守,为何微软却执意放弃?
- c语言求50以内阶乘,C语言之数组50以内的阶乘.doc
- Plu2006即将开赛,参赛选手名单公布
- 基于Singer映射和参数位置自适应更新机制的改进被囊群算法