【小巧玲珑】文件太大,怎么办?分卷压缩技术了解下,这才是压缩技术

news/2025/1/15 6:41:18/

【小巧玲珑】文件太大,怎么办?分卷压缩技术了解下,这才是压缩技术

  • 1、痛点
  • 2、场景重现
    • 2.1 jar包
    • 2.1 ZIP压缩
  • 3、压缩步骤
    • 3.1 新建压缩文件
    • 3.2 压缩结果
  • 4、解压步骤
  • 5、效果
  • 6、jar压缩算法

1、痛点

通过浏览器客户端访问云服务,文件大小在上传时会有限制,一般地,100M左右。
而现在的工程软件压缩后动辄200多M,这种情形就需要对文件进行压缩处理。

2、场景重现

2.1 jar包

以实际工程为例,jar包大小为146M,解压jar包后为413M。
在这里插入图片描述

2.1 ZIP压缩

使用ZIP压缩算法后,包大小为130M,比jar包少了16M左右,但是还是满足不了上传要求,因此就需要通过分卷压缩方法完成。
在这里插入图片描述

3、压缩步骤

使用Bandizip压缩软件进行分卷压缩。

3.1 新建压缩文件

如下图所示,将jar包添加到将要压缩的文件路径中。

设置40M进行分卷压缩。
在这里插入图片描述

3.2 压缩结果

可以看到生成了4个文件。
book.z01-z03是每一个卷,book.zip是其属性文件。
在这里插入图片描述

4、解压步骤

右键点击book.zip文件,选择解压到 book文件夹下。
在这里插入图片描述

5、效果

如下图所示,可以看到被还原。
在这里插入图片描述

6、jar压缩算法

JAR 压缩算法是一种用于压缩 Java 档案文件(.jar)的算法,它是由 Sun Microsystems 开发的。JAR 压缩算法是基于 LZW(Lempel-Ziv-Welch)算法的变体。LZW 算法是一种无损压缩算法,广泛用于压缩文件和图像。
JAR 压缩算法的步骤如下:

  1. 创建一个 JAR 文件,将需要压缩的文件或目录添加到其中。
  2. 使用 JAR 压缩工具(如 jar 或 jar cvf)对 JAR 文件进行压缩。
  3. 压缩过程中,JAR 压缩算法会对文件进行预处理,识别重复的数据块并记录它们。
  4. 在压缩过程中,JAR 压缩算法会使用 LZW 算法对数据进行压缩。LZW 算法通过匹配重复的数据块并替换它们,用一个较短的表示来压缩数据。
  5. 压缩后的 JAR 文件包含一个 MANIFEST 文件,其中包含压缩文件的元数据(如文件名,大小,创建日期等)。
  6. 可以使用 JAR 扩展程序(如 jar xf)来解压缩 JAR 文件。
    总的来说,JAR 压缩算法是一种高效的无损压缩算法,适用于压缩 Java 档案文件。它通过使用 LZW 算法来识别和压缩重复数据块,从而减小文件大小。

http://www.ppmy.cn/news/1151627.html

相关文章

UI自动化测试:Selenium+PO模式+Pytest+Allure整合

本人目前工作中未涉及到WebUI自动化测试,但为了提升自己的技术,多学习一点还是没有坏处的,废话不多说了,目前主流的webUI测试框架应该还是selenium,考虑到可维护性、拓展性、复用性等,我们采用PO模式去写我…

C++学习——对象数组、成员对象与封闭类

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 一、对象数组 对象数组,即数组的每个元素都是某个类的对象。 1、对象数组中的每个元素都需要用构造函数初始化,具体哪些元素用哪些构造函数初始化&#xff0c…

Linux网络基础知识全面总结

文章目录 linux网络基础知识1.1 IP地址和子网掩码1.2 网关和路由1.3 域名系统 (DNS)1.4 端口和协议 Linux网络配置2.1 ifconfig命令2.2 网络接口配置文件2.3 DHCP自动获取IP地址2.4 静态IP地址配置2.5 网络重启和应用配置3. 网络工具和命令3.1 ping命令3.2 traceroute和mtr命令…

字符串左旋 与 字符串旋转结果

字符串左旋 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 方法1 三步翻转法 要求:abcdef 左旋两个 整体逆序:fedcba左边逆序:cdef ba右边逆序:cdef ab #include<stdio.h> #include<…

[资源推荐] 复旦大学张奇老师科研分享

刷B站的时候首页给我推了这个&#xff1a;【直播回放】复旦大学张奇教授亲授&#xff1a;人工智能领域顶会论文的发表指南先前也散漫地读了些许论文&#xff0c;但没有在一些宏观的方法论下去训练&#xff0c;读的时候能感觉出一些科研的套路&#xff0c;论文写作的套路&#x…

Visual Studio 错误CS0006:未能找到元数据文件踩坑记录

前言 在写项目的时候&#xff0c;添加了个新的Nuget包&#xff0c;突然就不行&#xff0c;然后就是报错&#xff0c;找不到文件、 出现的原因是因为项目之间互相引用出现了问题&#xff0c;比如如下情况 先版本回退 如果有Git仓库 第一时间去看Git 文件比较&#xff0c;找到…

代码随想录Day39-动态规划:力扣第583m、72h、647m、516m、739m题

583. 两个字符串的删除操作 题目链接 代码随想录文章讲解链接 方法一&#xff1a;动态规划滚动数组 用时&#xff1a;8m48s 思路 先计算两个字符串的最长公共子序列的长度L&#xff0c;答案为两字符串长度之和减去两倍的L。 时间复杂度&#xff1a; O ( m n ) O(mn) O(mn…

react+antd封装表格组件2.0

reactantd封装表格组件2.0 1.0版本 仅仅封装组件&#xff0c;不涉及方法需要掌握知识点useImperativeHandle 组件代码引用 1.0版本 仅仅封装组件&#xff0c;不涉及方法 1.0 仅封装组件 此方法把所用方法集体封装&#xff0c;以后就可以无脑开发拉&#xff01; 只需传入路径&…