前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java直接读取.zip压缩文件ZipEntry.getsize()总是返回-1?

java直接读取.zip压缩文件ZipEntry.getsize()总是返回-1?

作者头像
软测小生
发布2019-07-05 11:10:18
2.6K0
发布2019-07-05 11:10:18
举报
文章被收录于专栏:软测小生软测小生
今天在项目中遇到一个问题,有一个需求是需要验证下载的ZIP文件,解压读取ZIP文件夹内部的文件,文件名称以及大小。 网上搜了下,发现,不用解压可以直接读取,代码如下:

但是后面发现一个问题,读取的时候总是返回-1 ze.getSize()的值总是-1,可是名字都到了。 找不到法子,着实无奈,后面换了种方式,干脆将文件解压出来之后,在对文件里面的内容进行验证文件名和文件大小好了

最后发现,着实繁琐,能不能三两行代码解决问题。

后来又继续网上搜索了半天,问了下同事,又继续搜索,突然之间找到了一种新的解决方式,无比开心!

分析下原因是因为:

把判断条件由【(ze=zin.getNextEntry())!=null】换成【zipEnum.hasMoreElements ()】

使用了枚举, Enumeration 接口(枚举)。

通常用 Enumeration 中的以下两个方法打印向量中的所有元素:

(1) boolean hasMoreElements(); // 是否还有元素,如果返回 true ,则表示至少含有一个元素

(2) public Object nextElement(); // 如果 Enumeration 枚举对象还含有元素,该方法返回对象中的下一个元素。如果没有,则抛出NoSuchElementException 异常。

总结:遇到问题,换个解决思路,多从互联网搜索可用信息; 相信同事和朋友,实在不行张开嘴巴问一问,或许同事遇到过,不一定要继续填坑,或者再造轮子;即便没遇到过换一个人的思考方式将会是解决问题的方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软测小生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
服务性能测试
服务性能测试(Server Performance Testing)是一款性能测试工具,可模拟百万用户发压,提供多维度性能测试报告,帮助业务快速定位产品性能瓶颈、准确验证系统能力,全面提升稳定性。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档