精华内容
下载资源
问答
  • 主要介绍了java压缩多个文件并且返回流示例,返回压缩流主是为了在程序里再做其它操作,需要的朋友可以参考下
  • 下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch def find_spe_file(root, patterns=['*'], non_cludedir=[]&#...
  • java压缩图片文件大小

    热门讨论 2014-05-14 11:10:20
    java 开发压缩图片文件大小,2m-->200k 不是压缩宽高的
  • 文件压缩类型总结

    千次阅读 2013-08-20 16:02:26
    ZIP应该算是最常见的压缩文件格式了,你甚至不需要单独为它安装一个压缩或者解压缩软件,因为我们使用的Windows系统以及集成了对ZIP压缩格式的支持。 经历过DOS时代的朋友可能还记得ARJ格式,它基本就是DOS...
    1.ZIP 
    

    ZIP应该算是最常见的压缩文件格式了,你甚至不需要单独为它安装一个压缩或者解压缩软件,因为我们使用的Windows系统以及集成了对ZIP压缩格式的支持。

    经历过DOS时代的朋友可能还记得ARJ格式,它基本就是DOS时代ZIP,直到ZIP的出现,以更高的压缩效率取代了ARJ,成为了大家的首选。现在的大多数操作系统都会集成对ZIP文件的支持,而所有的压缩软件也都会提供对ZIP文件的支持,这些足以体现出ZIP格式的地位。

    ZIP时代最出名的压缩软件就要数WinZIP了,它几乎是当时每台电脑都必备的软件。直到Windows系统开始集成了对ZIP文件的支持,以及后起新秀RAR格式的出现,使得WinZIP不再是那么的必要,才让它逐渐退出了大家的视线。

    2. RAR

    虽然ZIP在压缩文件格式中地位很高,但现在相当多的下载网站都选择了用RAR格式来压缩他们的文件,最根本的原因就在于RAR格式的文件压缩率比ZIP更高。

    同样的文件使用RAR格式进行压缩后得到的大小通常都会比使用ZIP压缩后更小,而我们对文件进行压缩的主要目的就是要减小文件大小以便于网络传输,正巧RAR格式又出现在网络刚刚开始普及的时候,所以RAR逐渐取代ZIP的地位也就是情理之中的事了。

    对RAR文件进行压缩或者解压缩,首选的软件当然是WinRAR,与之前的WinZIP一样,它几乎也是现在每台电脑都必装的软件。不过需要提醒大家的是,作为商业软件,WinRAR只允许用户进行30天的免费试用,虽然过期后软件仍然能够正常工作,但就已经不再合法了。

    3.7Z

    作为压缩格式的后起新秀,7Z有着比RAR更高的压缩率,能够将文件压缩的更加小巧。不过因为RAR格式已经高度普及,又没有网络普及的“天时”相助,7Z想要取代RAR现在的地位还是相当不容易的。

    与之前两种格式一样,7Z也有着专门支持它的软件:7-zip。使用7-zip可以解压缩RAR格式的压缩文件,而WinRAR也同样可以解压缩7Z格式的压缩文件。

    大概因为直接使用现有的WinRAR就可以处理网络上下载到的7Z格式文件,而要将文件压缩成7Z格式的话却需要额外安装7-zip,所以也间接的妨碍了7Z格式的普及吧。WinZIP当年就是因为没有及时的提供对RAR格式的支持而被WinRAR钻了空子。

    4.CAB

    CAB是微软的一种安装文件压缩格式,主要应用于软件的安装程序中。因为涉及到安装程序,所以CAB文件中包含的文件通常都不是简单的直接压缩,而是对文件名等都进行了处理,所以虽然可以对其直接解压缩,但解压后得到的文件通常都无法直接使用。

    和ZIP一样,Windows系统自身就可以打开CAB格式的文件,而几乎所有压缩软件也都可以对CAB文件进行解压。

    5.ISO

    很多朋友都认为ISO是一种压缩格式,这源于WinRAR添加了对ISO格式“解压”的支持。而实际上,ISO并不是压缩格式,它之中所包含的文件也并没有经过压缩。ISO只是一种光盘的镜像格式,完全复制并保存了光盘上的内容而已。所谓的对ISO“解压”的过程,不过就是对ISO内文件的提取过程。

    最后,我还想再为大家单独介绍一个软件:WinMount。

    我们解压缩一个文件,就必然会多占用一些磁盘空间,因为磁盘上同时存在了压缩文件和解压后的文件。而WinMount的特点就是能够将压缩文件以类似虚拟光驱的方式挂接为一个虚拟磁盘供我们使用,因为所有的操作都是在内存中进行的,并没有实际执行任何的解压缩操作,所以不会占用额外的磁盘空间。这对于某些朋友来说,可能还是会很有些帮助的。

    然而在Linux下压缩又比较特别,Linux下有相当多的压缩命令,初学的我们开始总是摸不清头脑,我们知道在Linux下的后缀名是没有什么很特殊的意义的,不过,为了方便记忆,针对这些压缩命令所做出来的压缩文件,还是会有一些特殊的命名方式,Linux下常见的压缩文件有*.tar,
    *.tar.gz, *.tgz, *.gz, *.Z, *.bz2等。
    ---------------------------------------------------
    1. .tar
      解包: tar xvf FileName.tar
      打包:tar cvf FileName.tar DirName
      (注:tar是打包,不是压缩!)
      ---------------------------------------------
    2.  .gz
      解压1:gunzip FileName.gz
      解压2:gzip -d FileName.gz
      压缩:gzip FileName
      .tar.gz 和 .tgz
      解压:tar zxvf FileName.tar.gz
      压缩:tar zcvf FileName.tar.gz DirName
      ---------------------------------------------
    3.  .bz2
      解压1:bzip2 -d FileName.bz2
      解压2:bunzip2 FileName.bz2
      压缩: bzip2 -z FileName
      .tar.bz2
      解压:tar jxvf FileName.tar.bz2
      压缩:tar jcvf FileName.tar.bz2 DirName
      ---------------------------------------------
    4.  .bz
      解压1:bzip2 -d FileName.bz
      解压2:bunzip2 FileName.bz
      压缩:未知
      .tar.bz
      解压:tar jxvf FileName.tar.bz
      压缩:未知
      ---------------------------------------------
    5.  .Z
      解压:uncompress FileName.Z
      压缩:compress FileName
      .tar.Z
      解压:tar Zxvf FileName.tar.Z
      压缩:tar Zcvf FileName.tar.Z DirName
      ---------------------------------------------
    6.  .zip
      解压:unzip FileName.zip
      压缩:zip FileName.zip DirName
      ---------------------------------------------
    7.  .rar
      解压:rar a FileName.rar
      压缩:r ar e FileName.rar
      
      rar请到:http://www.rarsoft.com/download.htm 下载!
      解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
      # cp rar_static /usr/bin/rar
      ---------------------------------------------
    8.  .lha
      解压:lha -e FileName.lha
      压缩:lha -a FileName.lha FileName
      
      lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!
      >解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
      # cp lha /usr/bin/
      ---------------------------------------------
    9. .rpm
      解包:rpm2cpio FileName.rpm | cpio -div
      ---------------------------------------------
      .deb
      解包:ar p FileName.deb data.tar.gz | tar zxf -
    用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩。


    下面分别介绍备份与压缩的命令。
      
    1.  tar命令
      
     
     tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
    tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于
    备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。
      
      语法:tar [主选项+辅选项] 文件或者目录
      
      使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
      
      主选项:
      
      c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
      
      r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
      
      t 列出档案文件的内容,查看已经备份了哪些文件。
      
      u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
      
      x 从档案文件中释放文件。
      
      辅助选项:
      
      b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
      
      f 使用档案文件或设备,这个选项通常是必选的。
      
      k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
      
      m 在还原文件时,把所有文件的修改时间设定为现在。
      
      M 创建多卷的档案文件,以便在几个磁盘中存放。
      
      v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
      
      w 每一步都要求确认。
      
      z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
      
      例1:把/home目录下包括它的子目录全部做备份文件,备份文件名为usr.tar。
      
      $ tar cvf usr.tar /home
      
      例2:把/home目录下包括它的子目录全部做备份文件,并进行压缩,备份文件名为usr.tar.gz 。
      
      $ tar czvf usr.tar.gz /home
      
      例3:把usr.tar.gz这个备份文件还原并解压缩。
      
      $ tar xzvf usr.tar.gz
      
      例4:查看usr.tar备份文件的内容,并以分屏方式显示在显示器上。
      
      $ tar tvf usr.tar | more
      
      要将文件备份到一个特定的设备,只需把设备名作为备份文件名。
      
      例5:用户在/dev/fd0设备的软盘中创建一个备份文件,并将/home 目录中所有的文件都拷贝到备份文件中。
      
      $ tar cf /dev/fd0 /home
      
      要恢复设备磁盘中的文件,可使用xf选项:
      
      $ tar xf /dev/fd0
      
     
     如果用户备份的文件大小超过设备可用的存贮空间,如软盘,您可以创建一个多卷的tar备份文件。M选项指示tar命令提示您使用一个新的存贮设备,当使
    用M选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒您再放入一张新的软盘。这样您就可以把tar档案存入几张磁盘中。
      
      $ tar cMf /dev/fd0 /home
      
      要恢复几张盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令。在必要时您会被提醒放入另外一张软盘。
      
      $ tar xMf /dev/fd0
      
     2. gzip命令
      
      减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
      
      语法:gzip [选项] 压缩(解压缩)的文件名
      
      各选项的含义:
      
      -c 将输出写到标准输出上,并保留原有文件。
      
      -d 将压缩文件解压。
      
      -l 对每个压缩文件,显示下列字段:
      
      压缩文件的大小
      
      未压缩文件的大小
      
      压缩比
      
      未压缩文件的名字
      
      -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
      
      -t 测试,检查压缩文件是否完整。
      
      -v 对每一个压缩和解压的文件,显示文件名和压缩比。
      
      -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
      
      假设一个目录/home下有文件mm.txt、sort.txt、xx.com。
      
      例1:把/home目录下的每个文件压缩成.gz文件。
      
      $ cd /home
      
      $ gzip *
      
      $ ls
      
      m.txt.gz sort.txt.gz xx.com.gz
      
      例2:把例1中每个压缩的文件解压,并列出详细的信息。
      
      $ gzip -dv *
      
      mm.txt.gz 43.1%-----replaced with mm.txt
      
      sort.txt.gz 43.1%-----replaced with sort.txt
      
      xx.com.gz 43.1%-----replaced with xx.com
      
      $ ls
      
      mm.txt sort.txt xx.com
      
      例3:详细显示例1中每个压缩的文件的信息,并不解压。
      
      $ gzip -l *
      
      compressed uncompr. ratio uncompressed_name
      
      277 445 43.1% mm.txt
      
      278 445 43.1% sort.txt
      
      277 445 43.1% xx.com
      
      $ ls
      
      mm.txt.gz sort.txt.gz xx.com.gz
      
      例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz
      
      $ gzip usr.tar
      
      $ ls
      
      usr.tar.gz
      
    3.  unzip命令
      
      用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。
      
      语法:unzip [选项] 压缩文件名.zip
      
      各选项的含义分别为:
      
      -x 文件列表 解压缩文件,但不包括指定的file文件。
      
      -v 查看压缩文件目录,但不解压。
      
      -t 测试文件有无损坏,但不解压。
      
      -d 目录 把压缩文件解到指定目录下。
      
      -z 只显示压缩文件的注解。
      
      -n 不覆盖已经存在的文件。
      
      -o 覆盖已存在的文件且不要求用户确认。
      
      -j 不重建文档的目录结构,把所有文件解压到同一目录下。
      
      例1:将压缩文件text.zip在当前目录下解压缩。
      
      $ unzip text.zip
      
      例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
      
      $ unzip -n text.zip -d /tmp
      
      例3:查看压缩文件目录,但不解压。
      
      $ unzip -v text.zip
      
    展开全文
  • 数据结构课程设计用哈夫曼编码实现文件压缩: 一、实验题目: 用哈夫曼编码实现文件压缩 二、实验目的: 1、了解文件的概念。 2、掌握线性链表的插入、删除等算法。 3、掌握Huffman树的概念及构造方法。...压缩文件
  •  本工具理论上支持所有类型图片和所有类型压缩文件的合并。  对于支持的图片格式,我只试过:JPG、GIF、PNG、ICO,以后还会继续实验、改进。  对于支持的压缩文件格式,我只试过:RAR、ZIP、7z,以后还会继续...
  • bupt数据结构实验,哈夫曼编码实现任意文件类型压缩,原创内容,代码仅供各位学习参考,严禁抄袭等学术不端行为
  • -- 常用文件扩展名解释 A 对象代码库文件 AAM Authorware shocked文件 AAS Authorware shocked包 ABF Adobe二进制屏幕字体 ABK CorelDRAW自动备份...取自abstract) ACE Ace压缩档案格式 ACL CorelDRAW 6键盘快捷键文件
    -- 常用文件扩展名解释 
    A 对象代码库文件
    AAM Authorware shocked文件
    AAS Authorware shocked包
    ABF Adobe二进制屏幕字体
    ABK CorelDRAW自动备份文件
    ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的文章的一个摘要或概要,取自abstract)
    ACE Ace压缩档案格式
    ACL CorelDRAW 6键盘快捷键文件
    ACM Windows系统目录文件
    ACP Microsoft office助手预览文件
    ACR 美国放射医学大学文件格式
    ACT Microsoft office助手文件
    ACV OS/2的驱动程序,用于压缩或解压缩音频数据
    AD After Dark屏幕保护程序
    ADA Ada源文件(非-GNAT)
    ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库
    ADD OS/2用于引导过程的适配器驱动程序
    ADF Amiga磁盘文件
    ADI AutoCAD设备无关二进制绘图仪格式
    ADM After Dark多模块屏幕保护;Windows NT策略模板
    ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件
    ADR After Dark随机屏幕保护;Smart Address的地址簿
    ADS Ada源文件说明书(GNAT)
    AFM Adobe的字体尺度
    AF2,AF3 ABC的FlowChat文件
    AI Adobe Illustrator格式图形
    AIF,AIFF 音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
    AIFC 压缩AIF
    AIM AOL即时信息传送
    AIS ACDSee图形序列文件;Velvet Studio设备文件
    AKW RoboHELP的帮助工程中所有A-关键词
    ALAW 欧洲电话音频格式
    ALB JASC Image Commander相册
    ALL 艺术与书信库
    AMS Velvet Studio音乐模块(MOD)文件;Extreme的Tracker模块文件
    ANC Canon Computer的调色板文件,包含一系列可选的颜色板
    ANI Windows系统中的动画光标
    ANS ANSI文本文件
    ANT SimAnt For Windows中保存的游戏文件
    API Adobe Acrobat使用的应用程序设计接口文件
    APR Lotus Approach 97文件
    APS Microsoft Visual C++文件
    ARC LH ARC的压缩档案文件
    ARI Aristotle声音文件
    ARJ Robert Jung ARJ压缩包文件
    ART Xara Studio绘画文件;Canon Crayola美术文件;Clip Art文件格式;另一种光线跟踪格式;AOL使用的用Johnson―Grace压缩算法压缩的标记文件
    ASA Microsoft Visual InterDev文件
    ASC ASCⅡ文本文件;PGP算法加密文件
    ASD Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming FORMat,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件
    ASE Velvet Studio采样文件
    ASF Microsoft高级流媒体格式文件
    ASM 汇编语言源文件,Pro/E装配文件
    ASO Astound Dynamite对象文件
    ASP 动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
    AST Astound多媒体文件;ClarisWorks“助手”文件
    ASV DataCAD自动保存文件
    ASX Cheyenne备份脚本文件;Microsoft高级流媒体重定向器文件,视频文件
    ATT AT< Group 4位图文件
    ATW 来自个人软件的Any Time Deluxe For Windows个人信息管理员文件
    AU Sun/NeXT/DEC/UNIX声音文件;音频U-Law(读作“mu-law”)文件格式
    AVB Computer Associates Inoculan反病毒软件的病毒感染后文件
    AVI Microsoft Audio Video Interleave电影格式
    AVR Audio Visual Research文件格式
    AVS 应用程序可视化格式
    AWD FaxVien文档
    AWR Telsis数字储存音频文件扩展名格式
    Axx ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)
    A3L Authorware 3.x库文件
    A4L Authorware 4.x库文件
    A5L Authorware 5.x库文件
    A3M,A4M Authorware Macintosh未打包文件
    A4P Authorware无运行时间的打包文件
    A3W,A4W,A5W 未打包的Authorware Windows文件
    BAK 备份文件
    BAS BASIC源文件
    BAT 批处理文件
    BDF West Point Bridger Designer文件
    BFC Windows 95 Briefcase文档
    BG Backgammon For Windows下的游戏文件
    BGL Microsoft Flight Simulator(微软飞行模拟器)的视景文件
    BI 二进制文件
    BIF Group Wise的初始化文件
    BIFF XLIFE 3D格式文件
    BIN 二进制文件
    BK,BK$ 有时用于代表备份版本
    BKS IBM BookManager Read书架文件
    BMK 书签文件
    BMP Windows或OS/2位图文件
    BMI Apogee BioMenace数据文件
    BOOK Adobe FrameMaker Book文件
    BOX Lotus Notes的邮箱文件
    BPL Borlard Delph 4打包库
    BQY BrioQuery文件
    BRX 用于查看多媒体对象目录的文件
    BSC MS Developer Studio浏览器信息文件
    BSP Quake图形文件
    BS1 Apogee Blake Stone数据文件
    BS_ Microsoft Bookshelf Find菜单外壳扩展名
    BTM Norton 应用程序使用的批处理文件
    BUD Quicken的备份磁盘
    BUN CakeWalk 声音捆绑文件(一种MIDI程序)
    BW SGI黑白图像文件
    BWV 商业波形文件
    BYU BYU的电影文件格式
    B4 Helix Nuts and Bolts文件
    C C代码文件
    C0l 台风波形文件
    CAB Microsoft压缩档案文件
    CAD Softdek的Drafix CAD文件
    CAL CALS压缩位图;日历计划表数据
    CAM Casio照相机格式
    CAP 压缩音乐文件格式
    CAS 逗号分开的ASCⅡ文件
    CAT Quicken使用 的IntellCharge分类文件
    CB Microsoft干净引导文件
    CBI 二进制卷格式文件(用于IBM大型机系统)
    CC Visual dBASE用户自定义类文件
    CCA cc:邮件文件
    CCB Visual Basic动态按钮配置文件
    CCF 多媒体查看器配置文件,用于OS/2
    CCH Corel图表文件
    CCM Lotus cc:邮箱(例如“INBOX.CCM”)
    CCO CyberChat数据文件
    CCT Macromedia Director Shockwave投影
    CDA CD音频轨道
    CDF Microsoft频道定义格式文件
    CDI Philip的高密盘交互格式
    CDM Visual dBASE自定义数据模块文件
    CDR CorelDRAW绘图文件;原始音频CD数据文件
    CDT CorelDRAW模板
    CDX CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件
    CEL CIMFast事件语言文件
    CER 证书文件(MIME x-x509-ca-cert)
    CFB Compton的多媒文件
    CFG 配置文件
    CFM CotdFusion模板文件;Visual dBASE Windows用户定制表单
    CGI 公共网关接口脚本文件
    CGM 计算机图形元文件
    CH OS/2配置文件
    CHK 由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
    CHM 编译过的HTML文件
    CHR 字符集(字体文件)
    CHP Ventura Publisher章节文件
    CHT ChartViem文件;Harvard Graphics矢量文件
    CIF Adaptec CD 创建器 CD映像文件
    CIL Clip Gallery下载包
    CIM SimCity 2000文件
    CIN OS/2改变控制文件用于跟踪INI文件中的变化
    CK1 iD/Apogee Commander Keen 1数据文件
    CK2 iD/Apogee Commander Keen 2数据文件
    CK3 iD/Apogee Commander Keen 3数据文件
    CK4 iD /Apogee Commander Keen 4数据文件
    CK5 iD /Apogee Commander Keen 5数据文件
    CK6 iD /Apogee Commander Keen 6数据文件
    CLASS Java类文件
    CLL Crick Software Clicker文件
    CLP Windows 剪贴板文件
    CLS Visual Basic类文件
    CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
    CMF Corel元文件
    CMG Chessmaster保存的游戏文件
    CMP JPEG位图文件;地址文档
    CMV Corel Move动画文件
    CMX Corel Presentation Exchange图像
    CNF Telnet,Windows和其他其内格式会发生改变的应用程序使用的配置文件
    CNM Windows应用程序菜单选项和安装文件
    CNQ Compuworks Design Shop文件
    CNT Windows(或其他)系统用于帮助索引或其他目的内容文件
    COB TrueSpace 2对象文件
    COD Microsoft C编译器产生的可显示机器码/汇编代码文件,其中附有源C代码作为注释
    COM 命令文件(程序)
    CPD Corel Print Office文件(图形)
    CPD,CPE 传真覆盖文档
    CPI Microsoft MS-DOS代码页信息文件
    CPL 控制面板扩展名,Corel颜色板
    CPO Corel打印存储文件
    CPP C++代码文件
    CPR Corel提供说明书文件
    CPT Corel 照片-绘画图像
    CPX Corel Presentation Exchange压缩图形文件
    CRD Windows Cardfile文件
    CRP Corel 提供的运行时介绍文件;Visual dBASE自定义报表文件
    CRT 认证文件
    CSC Corel脚本文件
    CSP PC Emcee On_Screen图像
    CSS 瀑布式表格文件
    CST Macromedia Director Cast文件
    CSV 逗号分隔的值文件
    CT Scitex CT位图文件;Paint Shop Pro Grapic编辑器文件
    CTL 通常用于表示一个包含控件信息的文件;FaxWork用它来保持有关每个传真收到或发出的信息
    CUE Microsoft提示牌数据文件
    CUR Windows光标文件
    CUT Dr Halo位图文件
    CV Corel版本的档案文件;Microsoft CodeView信息屏幕文件
    CWK ClarisWorks数据文件.
    CWS ClarisWorks模块
    CXT Macromedia Director受保护的(不可编辑的)投影文件
    CXX C++源代码文件
    --------------------------------------------------------------------------------

    -- 作者:ray
    -- 发布时间:2002-10-30 13:58:00

    --
    DAT 数据文件;WrodPerfect合并数据文件;用于一些MPEG格式的文件
    DB Borland的Paradox 7表
    DBC Microsoft Visual FoxPro数据库容器文件
    DBF dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件
    DBX DataBearn图像;Microsoft Visual FoxPro表格文件
    DCM DCM模块格式文件
    DCR 冲击波文件
    DCS 桌面颜色分隔文件
    DCT Microsoft Visual FoxPro数据库容器
    DCU Delphi编译单元文件
    DCX Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
    DC5 DataCAD绘图文件
    DDF Btrieve或Xtrieve数据定义文件,它包含用于描述Btrieve或Xtrieve文件的元数据
    DDIF Digital Equipment或 Compaq格式,用于保存他们图像与字处理文档
    DEF SmartWareⅡ数据文件;C++模块定义文件
    DEFI Oracle 7 卸载脚本文件
    DEM 用于表示数字高度模型的USGS基准的文件
    DER 认证文件
    DEWF Macintosh Sound Cap/Sound Edit录音设备格式
    DGN Macintosh 95 CAD绘图文件
    DIB 设备无关位图
    DIC 目录
    DIF 可进行数据互换的电子表格
    DIG DigiLink格式;Sound DesignerⅠ音频文件
    DIR MacromediaDirector文件
    DIZ 描述文件
    DLG C++对话框脚本文件
    DLL 动态链接库
    DLS 可下载声音文件
    DMD Visual dBASE数据模块文件
    DMF X-Trakker音乐模块(MOD)文件
    DOC FrameMaker或FrameBuilder文档;Word Star文档、Word Perfect文档、Microsoft Word文档;DisplayWrite文档
    DOT Microsoft Word文档模板
    DPL Borland Delph3压缩库
    DPR Borland Delphi工程头文件
    DRAW Acorn的基于对象的矢量图像文件
    DRV 驱动程序
    DRW Micrografx Designer/Draw;Pro/E绘画文件
    DSF Micrografx Designer VFX文件
    DSG DOOM保存的文件
    DSM Dynamic Studio音乐模块(MOD)文件
    DSP Microsoft Developer Studio工程文件
    DSQ Corel QUERY(查询)文件
    DST 刺绣机图形文件
    DSW Microsoft Developer Studio工作区文件
    DTA Word Bank(世界银行)的STARS数据文件
    DTD SGML文档类型定义(DTD)文件
    DTED 地面高度数字数据(图形的数据格式)文件
    DTF Symantec Q&A相关的数据库数据文件
    DTM DigiTrakker模块文件
    DUN Microsoft拔号网络导出文件
    DV 数字视频文件(MIME)
    DWD DiamondWare数字化文件
    DWG AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
    DXF 可进行互交换的绘图文件格式,二进制的DWG格式的文本表示;数据交换文件
    DXR Macromedia Director受保护(不可编辑)电影文件
    D64 Commodore的64位模拟磁盘图像文件
    EDA Ensoniq ASR磁盘映像
    EDD 元素定义文档(FrameMaker+SGML文档)
    EDE Ensoniq EPS磁盘映像
    EDK Ensoniq KT磁盘映像
    EDQ Ensoniq SQ1/SQ2/Ks32磁盘映像
    EDS Ensoniq SQ80磁盘映像
    EDV Ensoniq VFX-SD磁盘映像
    EFA Ensoniq ASR文件
    EFE Ensoniq EPS文件
    EFK Ensoniq KT文件
    EFQ Ensoniq SQ1/SQ2/Ks32文件
    EFS Ensoniq SQ80文件
    EFV Ensoniq VFX-SD文件
    EMD ABT扩展模块
    EMF Windows增强元文件
    EML Microsoft Outlook Express邮件消息(MIME RTC822)文件
    ENC 重演文件
    ENFF 中性文件格式扩展名
    EPHTML Perl解释增强HTML文件
    EPS 压缩的PostScript图像
    EPSF 压缩的PostScript文件
    ERI ERWin文件
    ERR 当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件
    EPX ERWin文件
    ESPS ESPS音频文件
    EUI Ensoniq ESP家族的压缩磁盘映像
    EVY 特使文档
    EWL Microsoft Encarta文档
    EXC Microsoft Word禁止字字典
    EXE 可执行文件(程序)
    F FORTRAN文件
    F2R Farandoyle线性模块格式
    F3R Farandoyle分块线性模块格式
    F77 FORTRAN文件
    F90 FORTRAN文件
    FAR Fradole Composer音乐模块(MOD)文件
    FAV Microsoft Outlook导航条
    FAX 传真类型图像
    FBK Navison 金融备份
    FCD 虚拟CD-ROM
    FDB Navison 金融数据库
    FDF Adobe Acrobat表单文档文件
    FEM CADRE有限元素网络文件
    FFA,FFL,FFO,FFK Microsoft快速查找文件
    FFF GUS PnP银行文件格式
    FFT 最终格式文本(IBM的DCA一部分)
    FH3 Aldus Freehand 3绘图文件
    FIF Fractal图像文件
    FIG REND386/AVRIL使用的文件格式
    FITS CCD照相机图像;灵活图像传输系统
    FLA Macromedia Flash电影
    FLC Autodesk FLIC动画文件
    FLF Corel Paradox产生的格式:Navison Financials许可文件;OS/2驱动程序文件
    PLI Autodesk FLIC动画
    FLT StarTrekker音乐模块(MOD)文件;MultiGen Inc的Open Flight使用的文件格式;Corel过滤器文件
    FM Adobe FrameMaker文档
    FMB Oracle4.0版或以后版本表单的二进制源代码文件
    FML 文件镜象列表(GetRight)
    FMT Oracle 4.0版或以后版本表单的文本格式;Microsoft Schedule+ 打印文件
    FMX Oracle 4.0版或以后版本可执行表单
    FND Microsoft Explorer保存的搜索文件(Find applet)
    FNG 字体组文件(字体导航器,Font Navigator)
    FNK Funk Tracker模块格式
    FOG Fontographer模块字体
    FON 系统字体
    FOR FORTRAN文件
    FOT 字体相关文件
    FP FileMaker Pro文件
    FP1 Flying Pigs for Windows数据文件
    FP3 FileMaker Pro文件
    FPT FileMaker Pro文件;Microsoft Fox Pro备注字体文件
    FPX FlashPix位图
    FRM 表单;Frame Maker或Frame Builder文档;Oracle可执行表(3.0版或早期版本);Visual Basic表单;WordPerfect Merge表单;DataCAD标志报表文件
    FRT Microsoft FoxPro报表文件
    FRX Visual Basic表单文本;Microsoft FoxPro报表文件
    FSF fPrint Audit Tool文件格式
    FSL Borland的Paradox 7表单;Corel Paradox保存的表单
    FSM Parandoyle示例格式
    FT Lotus Notes全文本索引
    FTG 全文本搜索组文件,由Windows帮助系统查找时产生――可以删除,并在需要时重建起来
    FTS 全文本搜索引文件,由Windows帮助系统查找时产生
    FW2 Framework Ⅱ文件
    FW3 Framework Ⅲ文件
    FW4 Framework Ⅳ文件
    FXP 经Microsoft FoxPro编译的源文件
    FZB Casio FZ-1银行转储
    FZF Casio FZ-1完全转储
    FZV Casio FZ-1声音转储
    G721 Raw CCITT G.721 $bit ADPCM格式数据
    G723 Raw CCITT G.723 3或5bit ADPCM格式数据
    GAL Corel多媒体管理器相集
    GCD Generic CADD绘画文件(后续版本)
    GCP Ground Control Point(地面控制点)文件,用于远景数据形成图像过程,经常用于生成图工程―CHIPS(copenhagen image processing system)使用这些文件
    GDB InterBase数据库文件
    GDM 铃声、口哨声和声音板模块格式
    GED GEDCOM 系谱数据文件,用于记录和交换系谱数据的流行格式;图形环境文档绘画
    GEM GEM元文件
    GEN Ventura产生的文本文件
    GetRight GetRight未完成的下载文件
    GFC Patton&Patton FlowCharting 4 flowchart文件
    GFI,GFX Genigraphics图形链接表示文件
    GHO Norton 克隆磁盘映像
    GID Windows 95全局索引文件(包括帮助状态)
    GIF CompuServe位图文件
    GIM,GIX Genigraphics图形链接介绍文件
    GKH Ensoniq EPS家簇磁盘映像文件
    GKS Gravis Grip Key文档
    GL 动画格式
    GNA Genigraphics图形链接介绍文件
    GNT 生成代码,Micro Focus属性格式里的可执行代码
    GNX Genigraphics图形链接介绍文件
    GRA Microsoft Graph文件
    GRD 用于远程视景数据产生地图过程的格式文件,通常应用于形成地图工程―CHIPS(copenhagen image processing system)使用这些文件
    GRF Grapher(Golden Software公司)图形文件
    GRP 程序管理组
    GSM Raw GSM 6.10音频流;Raw“byte aligned(比特对齐的)” GSM 6.10音频流;US Robotics语音调制解调器
    GTK Graoumftracker(老)音乐模块(MOD)文件
    GT2 Graoumftracker(新)音乐模块(MOD)文件
    GWX,GWZ Cenigraphis图形链接介绍文件
    GZ UNIX gzip压缩文件
    --------------------------------------------------------------------------------

    -- 作者:ray
    -- 发布时间:2002-10-30 13:59:00

    --
    H C程序头文件
    HCM IBM HCM配置文件
    HCOM 声音工具HCOM格式
    HCR IBM HCD/HCM产品配置文件
    HDF 高级计算机应用程序本地中心(NCSA) geospatial Hierarchial数据格式文件
    HED HighEdit文档
    HEL Microsoft Hellbender格式保存的游戏文件
    HEX Macintosh BinHex2.0文件
    HGL HP图形语言绘图文件
    HH 映射文件,包括一些话题ID和在帮助文件系统中话题的映射数字―允许运行中应用程序发送给用户合适的上下文帮助话题
    HLP 帮助文件;Date CAD Windows帮助文件
    HOG Lucas Arts的Dark Forces WAD文件
    HPJ Visual Basic帮助工程
    HPP C++程序头文件
    HQX Macintosh BinHex 4.0文件
    HST 历史文件
    HT HyperTerminal(超级终端)
    HTM,HTML 超文本文档
    HTT Microsoft超文本模板
    HTX 扩展HTML模板
    HXM Descent2 HAM文件扩展
    ICA Citrix文件
    ICB Targa位图文件
    ICC Kodak打印机格式文件
    ICL 图标库文件
    ICM 图形颜色匹配配置文件
    ICO Windows图标
    IDB MSDev中间层文件
    IDD MIDI设备定义
    IDF MIDI设备定义(Windows 95需要的文件)
    IDQ Internet数据查询文件
    IDX Microsoft FoxPro相关数据库索引文件;Symantec Q&A相关数据库索引文件;Microsoft Outlook Express文件
    IFF 交换格式文件;Amiga ILBM
    IGES 初始图形交换说明文件
    IGF 插入系统元文件
    IIF QuickBooks for Windows交换文件
    ILBM 位图图形文件
    IMA WinImage磁盘映像文件
    IMG GEM映像
    IMZ WinImage压缩磁盘映像文件
    INC 汇编语言或动态服务器包含文件
    INF 信息文件
    INI 初始化文件;MWave DSP Synth的“nwsynth.ini” GMS安装;Cravis Ultrasound bank安装
    INP Oracle 3.0版或早期版本的表单源代码
    INRS INRS远程通信声频
    INS InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备
    INT 中间代码,当一个源程序经过语法检查后编译产生一个可执行代码
    IOF Findit文档
    IQY Microsoft Internet查询文件
    ISO 根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件
    ISP X-Internet签字文件
    IST 数字跟踪设备文件
    ISU InstallShield卸装脚本
    IT 脉冲跟踪系统音乐模块(MOD)文件
    ITI 脉冲跟踪系统设备
    ITS 脉冲跟踪系统抽样,Internet文档位置
    IV Open Inventor中使用的文件格式
    IVD 超过20/20微观数据维数或变量等级文件
    IVP 超过20/20的用户子集配置文件
    IVT 超过20/20表或集合数据文件
    IVX 超过20/20微数据目录文件
    IW Idlewild屏幕保护程序
    IWC Install Watch文档
    J62 Ricoh照相机格式
    JAR Java档案文件(一种用于applet和相关文件的压缩文件)
    JAVA Java源文件
    JBF Paint Shop Pro图像浏览文件
    JFF,JFIF,JIF JPEG文件
    JMP SAS的JMPDiscovery表格统计文件
    JN1 Epic MegaGames的Jill of the Jungle数据文件
    JPE,JPEG,JPG JPEG图形文件
    JS javascript源文件
    JSP HTML网页,其中包含有对一个Java servlet的参考
    JTF JPEG位图文件
    K25 Kurzweil 2500抽样文件
    KAR 卡拉OK MIDI文件(文本+MIDI)
    KDC Kodak光增强器
    KEY DataCAD图标工具条文件
    KFX KoFak Group 4图像文件
    KIZ Kodak数字明信片文件
    KKW RoboHELP帮助工程索引设计器中与主题无关的K开头的所有关键字
    KMP Korg Trinity KeyMap文件
    KQP Konica照相机本地文件
    KR1 Kurzweil 2000抽样(多软驱)文件
    KRZ Kurzweil 2000抽样文件
    KSF Korg Trinity抽样文件
    KYE Kye游戏数据
    LAB Visual dBASE标签文件
    LBM Deluxe Paint位图文件
    LBT,LBX Microsoft FoxPro标签文件
    LDB Microsoft Access加锁文件
    LDL Corel Paradox分发库
    LEG Legacy文档
    LES Logitech娱乐系统游戏配置文件(与REC文件一样)
    LFT 3D Studio(DOS)放样文件
    LGO Paintbrush(Microsoft画图应用程序)的徽标文件
    LHA LZH更换文件后缀
    LIB 库文件
    LIN DataCAD线型文件
    LIS 结构化查询报告(SQR)程序产生的输出文件
    LLX Laplink交换代理
    LNK Windows快捷方式文件
    LOG 日志文件
    LPD Helix Nut和Bolt文件
    LRC Intel可视电话文件
    LSL Corel Paradox保存的库文件
    LSP AutoLISP、CommonLISP和其他LISP语言文件
    LST 列表文件
    LU ThoughtWing库单元文件
    LVL Parallax Software的 Miner Descent/D2 Level扩展
    LWLO Lightwave分层对象文件
    LWOB Lightwave对象文件
    LWP Lotus WordPro 96/97文件
    LWSC Lightwave视景文件
    LYR DataCAD层文件
    LZH LH ARC压缩档案
    LZS Skyroads数据文件
    --------------------------------------------------------------------------------

    -- 作者:ray
    -- 发布时间:2002-10-30 13:59:00

    --
    M1V MPEG相关文件(MIME“mpeg”类型)
    M3D Corel Motion 3D动画文件
    M3U MPEG URL(MIME声音文件)
    MAC MacPaint图像文件
    MAD Microsoft Access模块文件
    MAF Microsoft Access表单文件
    MAG 在一些日本文件中发现的图形文件格式
    MAGIC 魔力邮件监视器配置文件
    MAK Visual Basil或Microsoft Visual C++工程文件
    MAM Microsoft Access宏
    MAN UNIX手册页输出
    MAP 映射文件;Duke Nukem 3D WAD游戏文件
    MAQ Microsoft Access查询文件
    MAR Microsoft Access报表文件
    MAS Lotus Freelance Graphics Smart Master文件
    MAT Microsoft Access表;3D Studio MAX材料库
    MAUD MAUD抽样格式
    MAX Kinetx的3DStudio MAX文件;该格式用于一个3D场景文件;Paperport文件;OrCAD设计文件
    MAZ Hover迷路数据;Division的dVS/dVISE使用的文件格式
    MB1 Apogee Monster Bash数据文件
    MBOX Berkeley Unix邮箱格式
    MBX Microsoft Outlook保存email格式;Eudora邮箱
    MCC Dailerl0呼叫卡
    MCP Metrowerks CodeWarrior工程文件
    MCR DataCAD键盘宏文件
    MCW Microsoft Word的Macintosh文档
    MDA Microsoft Access内抽入器;Microsoft Access 2.0版及其后续版本的工作组事件
    MDB Microsoft Access数据库
    MDE Microsoft Access MDE文件
    MDL 数字跟踪器音乐模块(MOD)文件;Quake模 块文件
    MDN Microsoft Access空数据库模板
    MDW Microsoft Access工作组文件
    MDZ Microsoft Access向导模板文件
    MED 音乐编辑器,OctaMED音乐模块(MOD)文件
    MER 电子表格/数据库数据交换格式;FileMaker、Excel及其他软件能识别
    MET 表示管理器元文件
    MFG Pro/ENGINEER制造文件
    MGF 在材料与几何学里的文件格式
    MHTM,MHTML MHTML文档(MIME)
    MI 杂项
    MIC Microsoft Image Composer文件
    MID MIDI音乐
    MIF Adobe FramMaker交换格式
    MIFF 与机器无关格式文件
    MIM,MIME,MME Internet邮件扩展格式的多用途文件,经常作为发送e-mail时在AOL里附件而创建的文件;在一个多区MIM文?/div>
    展开全文
  • DeflateStream不写入数据到其它类型的资源,比如文件或者内存。 DeflateStream在写入另一个流的时候,它会对数据进行压缩和解压缩。 使用DEFLATE压缩数据文件的一般过程: 打开一个现有的文件  打开/创建输出文件 ...
  • 基于VC++6.0的cpp文件命令行界面,程序可直接运行,对文本类文件压缩率较高
  • 首次转.netCore 发布Linux 突然忘记公司规定的Linux包格式... zip 程序打包压缩文件 zip -q targetFile.zip sourceFile unzip targetFile.zip *.rar rar 程序压缩文件 rar a targetFile.rar sou...

    首次转.netCore 发布Linux 突然忘记公司规定的Linux包格式。公司内部使用tar 格式的文件。打包工具用的7Z.

    顺带列举一下Linux的包

    文件后缀名说明linux创建linux解压
    *.zipzip 程序打包压缩的文件zip -q  targetFile.zip   sourceFileunzip  targetFile.zip
    *.rarrar 程序压缩的文件rar  a  targetFile.rar  sourceFile rar x  targetFile.rar 
    *.7z7zip 程序压缩的文件 7z a  targetFile.7z 7z  x  targetFile.7zr 
    *.tartar 程序打包,未压缩的文件 tar -cvf    targetFile.tar   sourceFile tar -xvf    targetFile.tar
    *.gzgzip 程序(GNU zip)压缩的文件 gzip  targetFile.gz sourceFile gunzip  targetFile.gz | gzip -d targetFile.gz
    *.xzxz 程序压缩的文件 xz sourceFile xz -d targetFile.tar.xz
    *.bz2bzip2 程序压缩的文件 bzip2 sourceFile bzip -d targetFile.bz2 |bunzip2 targetFile.gz
    *.tar.gztar 打包,gzip 程序压缩的文件

    tar -czvf    targetFile.tar.gz   sourceFile

    tar -zxvf     targetFile.tar.gz
    *.tar.xztar 打包,xz 程序压缩的文件tar -cJvf    targetFile.tar.xz   sourceFiletar -xJvf    targetFile.tar.xz
    *tar.bz2tar 打包,bzip2 程序压缩的文件tar -cjvf    targetFile.tar.bz2  sourceFiletar -jxvf     targetFile.tar.bz2
    *.tar.7ztar 打包,7z 程序压缩的文件  
    展开全文
  • 压缩文本文件

    2013-12-16 20:25:29
    否则该词不拷贝到压缩文件中,而是将该词在词的列表中的位置拷贝到压缩文件中。 3. 词的列表的起始位置为 1 。 词的定义为文本中由大小写字母组成的最大序列。大写字母和小写字母认为是不同的字母,即 abc 和 Abc ...
  • 这是我总结了多次写出来的代码,可以支持同时上传多个不同类型文件,如果包括图片将会自动压缩,避免过大的图片上传到服务器。
  • JAVA文件压缩与解压缩实践(源代码+论文).zip JAVA文件压缩与解压缩实践(源代码+论文).zip
  • 基于Huffman树和堆实现对不同类型文件进行压缩和解压缩
  • Java实现zip文件压缩与解压缩--附完整代码

    万次阅读 多人点赞 2019-07-26 14:54:09
    Java实现文件压缩与解压缩-----zip、.7z1. 基本概念1.1 Java中实现zip的压缩与解压缩1.1.1 基本概念1.1.2 zip压缩代码实现1.3 zip压缩代码改进 1. 基本概念 1.1 Java中实现zip的压缩与解压缩 1.1.1 基本概念 ...

    Java中实现zip的压缩与解压缩

    1 基本概念

    1. ZipOutputStream 实现文件的压缩
    • ZipOutputStream (OutputStream out) 创建新的zip输出流
    • void putNextEntry(ZipEntry e) 开始写入新的zip文件条目并将流定位到条目数据的开始处
      条目指的是一个文件夹下的多个文件。
    • ZipEntry(String name) 使用指定名称创建新的zip条目
    1. ZipIutputStream实现文件的解压
    • ZipIutputStream (IutputStream out) 创建新的zip输入流
    • ZipEntry getNextEntry()读取下一个zip条目并将流定位到该条目数据的开始处

    2 zip压缩

    2.1 zip压缩代码实现

    1. 程序完整代码
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    public class Uzip {
        /**
         * 压缩
         */
    
        public static void zip(String input, String output, String name) throws Exception {
        //要生成的压缩文件
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(output));
            String[] paths = input.split("\\|");
            File[] files = new File[paths.length];
            byte[] buffer = new byte[1024];
            for (int i = 0; i < paths.length; i++) {
                files[i] = new File(paths[i]);
            }
            for (int i = 0; i < files.length; i++) {
                FileInputStream fis = new FileInputStream(files[i]);
                if (files.length == 1 && name != null) {
                    out.putNextEntry(new ZipEntry(name));
                } else {
                    out.putNextEntry(new ZipEntry(files[i].getName()));
                }
                int len;
                // 读入需要下载的文件的内容,打包到zip文件
                while ((len = fis.read(buffer)) > 0) {
                    out.write(buffer, 0, len);
                }
                out.closeEntry();
                fis.close();
            }
            out.close();
        }
    
        public static void main(String[ ] args){
            try {
                zip("E:\\Testzip\\test\\ytt.html","E:\\Test.zip","testytt");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    

    maven依赖:

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.12</version>
        </dependency>
    
    1. 运行程序:

    在这里插入图片描述

    3.程序解读:

    • ZipEntry(String name) 只能实现一个固定条目的压缩,也就是你压缩什么就得写仔细它的路径,多个子文件压缩写法如下:
    public static void main(String[ ] args){
            try {
                zip("E:\\Testzip\\test\\ytt.html|E:\\Testzip\\uugg.html","E:\\Test.zip",null);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    注意

    一定要写全E:\\Testzip\\test\\ytt.html,如果写E:\\Testzip\\test\\ytt会报错,报错信息无访问权限。

    String input :定义的是待压缩文件的条目。

    String output:定义得到的压缩文件包.zip的名字。

    String name:定义压缩后的条目的名字,如果与压缩前保持一致,定义name为null即可。

    此程序无法实现对空文件夹的压缩。

    2.2 zip压缩代码改进

    改进的代码可以实现对任意文件的压缩,注意要写全文件类型,比如ytt.html,不允许省略.html。

    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    /**
     * date: 2019/07/26
     * writed by yangtingting
     */
    public class FileZip {
        /**
         * zip文件压缩
         * @param inputFile 待压缩文件夹/文件名
         * @param outputFile 生成的压缩包名字
         */
    
        public static void ZipCompress(String inputFile, String outputFile) throws Exception {
            //创建zip输出流
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFile));
            //创建缓冲输出流
            BufferedOutputStream bos = new BufferedOutputStream(out);
            File input = new File(inputFile);
            compress(out, bos, input,null);
            bos.close();
            out.close();
        }
        /**
         * @param name 压缩文件名,可以写为null保持默认
         */
        //递归压缩
        public static void compress(ZipOutputStream out, BufferedOutputStream bos, File input, String name) throws IOException {
            if (name == null) {
                name = input.getName();
            }
            //如果路径为目录(文件夹)
            if (input.isDirectory()) {
                //取出文件夹中的文件(或子文件夹)
                File[] flist = input.listFiles();
    
                if (flist.length == 0)//如果文件夹为空,则只需在目的地zip文件中写入一个目录进入
                {
                    out.putNextEntry(new ZipEntry(name + "/"));
                } else//如果文件夹不为空,则递归调用compress,文件夹中的每一个文件(或文件夹)进行压缩
                {
                    for (int i = 0; i < flist.length; i++) {
                        compress(out, bos, flist[i], name + "/" + flist[i].getName());
                    }
                }
            } else//如果不是目录(文件夹),即为文件,则先写入目录进入点,之后将文件写入zip文件中
            {
                out.putNextEntry(new ZipEntry(name));
                FileInputStream fos = new FileInputStream(input);
                BufferedInputStream bis = new BufferedInputStream(fos);
                int len;
                //将源文件写入到zip文件中
                byte[] buf = new byte[1024];
                while ((len = bis.read(buf)) != -1) {
                    bos.write(buf,0,len);
                }
                bis.close();
                fos.close();
            }
        }
        public static void main(String[] args) {
            try {
                ZipCompress("D:\\Test", "D:\\TestbyYTT.zip");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    
    

    3 zip解压

    3.1 zip不完美实现

    1. 这个网上有很多代码的,比如:
    package file;
     
    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipInputStream;
     
    public class Decompressing {
        public static void main(String[] args) {
            File file = new File("E:\\hello.zip");//当前压缩文件
            ZipInputStream zin;//创建ZipInputStream对象
            try {
                ZipFile zipFile = new ZipFile(file);//创建压缩文件对象
                zin = new ZipInputStream(new FileInputStream(file));//实例化对象,指明要解压的文件
                ZipEntry entry ;
                while (((entry=zin.getNextEntry())!=null)&& !entry.isDirectory()){//如果entry不为空,并不在同一个目录下
                    File tmp = new File(entry.getName());//解压出的文件路径
                    if (!tmp.exists()){//如果文件不存在
                        tmp.getParentFile().mkdirs();//创建文件父类文件夹路径
                        OutputStream os = new FileOutputStream(tmp);//将文件目录中的文件放入输出流
                        //用输入流读取压缩文件中制定目录中的文件
                        InputStream in = zipFile.getInputStream(entry);
                        int count = 0;
                        while ((count = in.read())!=-1){//如有输入流可以读取到数值
                            os.write(count);//输出流写入
                        }
                        os.close();
                        in.close();
                    }
                    zin.closeEntry();
                    System.out.println(entry.getName()+"解压成功");
                }
                zin.close();
     
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     
    }
    

    以上代码运行时会抛出异常!!!!!!!!!

    做出相应更改:

    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    
    /**
     * date:2019/7/26
     * writed by yangtingting
     */
    
    public class zipUncompress {
        /**
         * zip文件解压
         *
         * @param inputFile   待解压文件夹/文件
         * @param destDirPath 解压路径
         */
        public static void zipUncompress(String inputFile, String destDirPath) throws Exception {
            File srcFile = new File(inputFile);//获取当前压缩文件
            // 判断源文件是否存在
            if (!srcFile.exists()) {
                throw new Exception(srcFile.getPath() + "所指文件不存在");
            }
            //开始解压
            //构建解压输入流
            ZipInputStream zIn = new ZipInputStream(new FileInputStream(srcFile));
            ZipEntry entry = null;
            File file = null;
            while ((entry = zIn.getNextEntry()) != null) {
                if (!entry.isDirectory()) {
                    file = new File(destDirPath, entry.getName());
                    if (!file.exists()) {
                        new File(file.getParent()).mkdirs();//创建此文件的上级目录
                    }
                    OutputStream out = new FileOutputStream(file);
                    BufferedOutputStream bos = new BufferedOutputStream(out);
                    int len = -1;
                    byte[] buf = new byte[1024];
                    while ((len = zIn.read(buf)) != -1) {
                        bos.write(buf, 0, len);
                    }
                    // 关流顺序,先打开的后关闭
                    bos.close();
                    out.close();
                }
            }
        }
        public static void main(String[] args) {
            try {
                zipUncompress("D:\\ytt.zip", "D:\\ytt的解压文件\\");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    完美运行!!!

    3.2 zip解压完美实现

    改进后的代码

    import java.io.*;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    
    /**
     * date:2019/7/26
     * writed by yangtingting
     */
    
    public class zipUncompress {
        /**
         * zip文件解压
         * @param inputFile  待解压文件夹/文件
         * @param destDirPath  解压路径
         */
        public static void zipUncompress(String inputFile,String destDirPath) throws Exception {
            File srcFile = new File(inputFile);//获取当前压缩文件
            // 判断源文件是否存在
            if (!srcFile.exists()) {
                throw new Exception(srcFile.getPath() + "所指文件不存在");
            }
            ZipFile zipFile = new ZipFile(srcFile);//创建压缩文件对象
            //开始解压
            Enumeration<?> entries = zipFile.entries();
            while (entries.hasMoreElements()) {
                ZipEntry entry = (ZipEntry) entries.nextElement();
                // 如果是文件夹,就创建个文件夹
                if (entry.isDirectory()) {
                    String dirPath = destDirPath + "/" + entry.getName();
                    srcFile.mkdirs();
                } else {
                    // 如果是文件,就先创建一个文件,然后用io流把内容copy过去
                    File targetFile = new File(destDirPath + "/" + entry.getName());
                    // 保证这个文件的父文件夹必须要存在
                    if (!targetFile.getParentFile().exists()) {
                        targetFile.getParentFile().mkdirs();
                    }
                    targetFile.createNewFile();
                    // 将压缩文件内容写入到这个文件中
                    InputStream is = zipFile.getInputStream(entry);
                    FileOutputStream fos = new FileOutputStream(targetFile);
                    int len;
                    byte[] buf = new byte[1024];
                    while ((len = is.read(buf)) != -1) {
                        fos.write(buf, 0, len);
                    }
                    // 关流顺序,先打开的后关闭
                    fos.close();
                    is.close();
                }
            }
        }
        public static void main(String[] args) {
            try {
                zipUncompress("D:\\ytt.zip","D:\\ytt的解压文件");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    

    4 FileZip.class 实现.zip压缩与解压

    完整代码:

    import java.io.*;
    import java.util.zip.*;
    import java.util.zip.ZipEntry;
    
    /**
     * date: 2019/07/26
     * writed by yangtingting
     */
    public class FileZip {
        /**
         * zip文件压缩
         * @param inputFile 待压缩文件夹/文件名
         * @param outputFile 生成的压缩包名字
         */
    
        public static void ZipCompress(String inputFile, String outputFile) throws Exception {
            //创建zip输出流
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFile));
            //创建缓冲输出流
            BufferedOutputStream bos = new BufferedOutputStream(out);
            File input = new File(inputFile);
            compress(out, bos, input,null);
            bos.close();
            out.close();
        }
        /**
         * @param name 压缩文件名,可以写为null保持默认
         */
        //递归压缩
        public static void compress(ZipOutputStream out, BufferedOutputStream bos, File input, String name) throws IOException {
            if (name == null) {
                name = input.getName();
            }
            //如果路径为目录(文件夹)
            if (input.isDirectory()) {
                //取出文件夹中的文件(或子文件夹)
                File[] flist = input.listFiles();
    
                if (flist.length == 0)//如果文件夹为空,则只需在目的地zip文件中写入一个目录进入
                {
                    out.putNextEntry(new ZipEntry(name + "/"));
                } else//如果文件夹不为空,则递归调用compress,文件夹中的每一个文件(或文件夹)进行压缩
                {
                    for (int i = 0; i < flist.length; i++) {
                        compress(out, bos, flist[i], name + "/" + flist[i].getName());
                    }
                }
            } else//如果不是目录(文件夹),即为文件,则先写入目录进入点,之后将文件写入zip文件中
            {
                out.putNextEntry(new ZipEntry(name));
                FileInputStream fos = new FileInputStream(input);
                BufferedInputStream bis = new BufferedInputStream(fos);
                int len=-1;
                //将源文件写入到zip文件中
                byte[] buf = new byte[1024];
                while ((len = bis.read(buf)) != -1) {
                    bos.write(buf,0,len);
                }
                bis.close();
                fos.close();
            }
        }
    
        /**
         * zip解压
         * @param inputFile 待解压文件名
         * @param destDirPath  解压路径
         */
    
        public static void ZipUncompress(String inputFile,String destDirPath) throws Exception {
            File srcFile = new File(inputFile);//获取当前压缩文件
            // 判断源文件是否存在
            if (!srcFile.exists()) {
                throw new Exception(srcFile.getPath() + "所指文件不存在");
            }
            //开始解压
            //构建解压输入流
            ZipInputStream zIn = new ZipInputStream(new FileInputStream(srcFile));
            ZipEntry entry = null;
            File file = null;
            while ((entry = zIn.getNextEntry()) != null) {
                if (!entry.isDirectory()) {
                    file = new File(destDirPath, entry.getName());
                    if (!file.exists()) {
                        new File(file.getParent()).mkdirs();//创建此文件的上级目录
                    }
                    OutputStream out = new FileOutputStream(file);
                    BufferedOutputStream bos = new BufferedOutputStream(out);
                    int len = -1;
                    byte[] buf = new byte[1024];
                    while ((len = zIn.read(buf)) != -1) {
                        bos.write(buf, 0, len);
                    }
                    // 关流顺序,先打开的后关闭
                    bos.close();
                    out.close();
                }
            }
        }
    
    
        public static void main(String[] args) {
            try {
                ZipCompress("D:\\Test", "D:\\TestbyYTT.zip");
                ZipUncompress("D:\\ytt.zip","D:\\ytt的解压文件");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    展开全文
  • C# 调用Zlib库实现文件压缩,可以把常见类型文件压缩成 zlib 格式的文件,主要实现了一个函数 public void ZipFile(string fileToZip, string zipedFile, int compressionLevel, int blockSize); 用户...
  • 基于huffman哈夫曼编码对文件进行压缩和解压缩
  • 需求场景:利用input 上传文件,限制文件类型为zip,或者rar压缩包类型。①尝试通过accept限制,发现除了zip和rar文件,excel,doc等文件也能选择。②于是,解决方案是通过对文件名的判断,增加一层过滤,代码如下...
  • Java多文件压缩下载解决方案

    万次阅读 2018-09-07 18:00:33
    会员运营平台经过改版后页面增加了许多全部下载链接,上周上线比较仓促,全部下载是一个直接下载ZIP压缩文件的链接,每个ZIP压缩文件都是由公司运营人员将页面需要下载的文件全部压缩成一个ZIP压缩文件,然后通过...
  • 文件压缩

    2018-09-28 21:35:33
    问价压缩 支持压缩文件 传入的是string类型的数组 如果想压缩list集合文件 可先转化 代码简洁易懂
  • 判断压缩文件的类型。我用了ContentType,输出他的ContentType为null。用文件头判断只有rar和zip,不全面。 还有什么方法能判断出他的类型呢?要准确,还能判断出各种压缩文件类型
  • 文件压缩与解压(哈夫曼编码)

    热门讨论 2011-11-06 15:13:55
    利用哈夫曼编码原理对磁盘文件进行压缩与解压
  • 用好压打开文件,发现:【以压缩文件方式打开文件失败】, 瞬间崩溃,于是很努力的去找解决方法,最终解决方案如下: 使用winrar软件(如果没有winrar需要安装),使用工具修复压缩文件 拖拉修复的压缩文件进去...
  • 该程序还能够创建应压缩文件的备份。 如果文件被压缩,则相应设备上的物理文件大小会减小。 压缩文件在执行时会自行解压缩,无需使用此程序即可使用。这个程序是免费的。它需要 .NET-framework 2.0(自 Windows ...
  • Linux上压缩文件的 5 种方法

    千次阅读 2020-07-03 14:05:53
    在 Linux 上不少用于压缩文件的命令。最新最有效的一个方法是 xz,但是所有的方法都节省磁盘空间和维护备份文件供以后使用的优点。在这篇文章中,我们将比较这些压缩命令并指出显著的不同。 tar  tar 命令不是...
  • 如果它们已经使用.gz .bz2 .xz进行压缩,它甚至可以对其进行压缩(有关受支持的文件类型的完整列表,请参见'genozip --help = input')。 压缩率取决于要压缩的数据,通常,压缩.bam时,压缩率约为1.5-3倍; .fastq...
  • 此文档包括 WinRAR 多功能压缩文件管理器
  • 草稿版代码 内容超详细 可压缩任何文件类型 亲测可用 100%还原

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 435,465
精华内容 174,186
关键字:

压缩文件的类型有哪些