监控GZip下载Java的进展
发布时间:2020-12-14 19:20:52 所属栏目:Java 来源:网络整理
导读:我在我的Java应用程序中下载了一些文件并实现了下载监视器对话框.但最近我使用gzip压缩了所有文件,现在下载监视器有点破碎了. 我将文件作为GZIPInputStream打开,并在每次下载KB后更新下载状态.如果文件大小为1MB,则进度可达到4MB是未压缩的大小.我想监视压缩
我在我的Java应用程序中下载了一些文件并实现了下载监视器对话框.但最近我使用gzip压缩了所有文件,现在下载监视器有点破碎了. 我将文件作为GZIPInputStream打开,并在每次下载KB后更新下载状态.如果文件大小为1MB,则进度可达到4MB是未压缩的大小.我想监视压缩的下载进度.这可能吗? 编辑:澄清:我正在读取GZipInputStream中的字节,这些字节是未压缩的字节.所以这并没有给我正确的文件大小. 这是我的代码:
谢谢你的帮助! 最佳答案
根据规范,
GZIPInputStream 是InflaterInputStream 的子类.InflaterInputStream具有protected Inflater inf 字段,其是用于解压缩工作的Inflater . Inflater.getBytesRead 应该对您的目的特别有用.
不幸的是,GZIPInputStream不会暴露inf,所以可能你必须创建自己的子类并暴露Inflater,例如
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |