当前位置: 首页>后端>正文

java查看压缩包文件个数 java读取压缩包文件


文章目录

  • (零)前言
  • (一)【ZIP】格式
  • (1.1)Python ⭐️
  • (1.2)Java ⭐️
  • (1.3)Golang ⭐️
  • (1.4)Pascal
  • (1.4.1)Lazarus(Free Pascal)
  • (1.4.2)Delphi ⭐️
  • (1.5)C++
  • (二)【GZIP】格式
  • (2.1)Python ⭐️
  • (2.2)Java ⭐️
  • (2.3)Golang ⭐️
  • (2.4)Pascal
  • (2.4.1)Lazarus(Free Pascal)
  • (2.4.2)Delphi ⭐️
  • (2.5)C++ ⭐️
  • (三)【TAR】格式
  • (3.1)Python ⭐️
  • (3.2)Java ⭐️
  • (3.3)Golang ⭐️
  • (3.4)Pascal
  • (3.4.1)Lazarus(Free Pascal)
  • (3.4.2)Delphi ⭐️
  • (四)【RAR】格式
  • (4.1)Python
  • (4.2)Java
  • (4.3)Golang ⭐️
  • (五)【7Zip】格式
  • (5.1)Python ⭐️
  • (5.2)Java ⭐️
  • (5.3)Golang ⭐️
  • (六)【Unix Z】格式
  • (6.1)Python ⭐️
  • (6.2)Java ⭐️
  • (6.3)Golang ⭐️


(零)前言

通常的情况下遇到压缩包,都是解开后再进行文件操作。
比如把A.zip 解压缩成-> a.txt,再用程序打开a.txt正常读取。
上网查各种例子也是文件解开到文件。

很多年前我们也是这么干的,直到发现了这些情况:

  1. 似乎是4G时代吧,VoLTE的时代,各个厂商都用极其冗长的格式来存储并传输数据。
    导致压缩比非常大比如大到100:1。也就是1GB的压缩包,解开后是100GB的数据。
    这些无谓的磁盘开销改为直接读取压缩包就可以完全避免。
  2. 服务器虚拟化后,有些磁盘读写(尤其是写)特别慢。
    比如200MB的数据如果解压成4GB再进行处理,单个数据节点需要4小时,不解压只要2分钟左右。
    时间的差距实在是巨大。

所以不得已,只能直接读写压缩文件了。
不能调用外部的命令,还得兼顾跨平台,各种语言实现的方式都不太一样。
能读通常就能写,加上读文本比读二进制块更“高级”,所以就用读文本做例子吧。

带有⭐️的例子,能够完成“直接读文本行”的功能,其它例子得自己改。

(一)【ZIP】格式

是Windows下最常见的格式。
单个压缩包内可以包含多个文件
虽然压缩率不及RAR和7Z,读取速度不及GZIP,但是在Windows下兼容性是最好的。
常见的软件:WinZip。

(1.1)Python ⭐️

我完全不懂python,不过挺好用呢。
zip的支持是自带的。
参考:


https://www.xamrdz.com/backend/34h1964199.html

相关文章: