精华内容
下载资源
问答
  • 2021-05-09 01:33:30

    一、压缩命令:

    1、compress:最为古老的压缩命令,现在基本不用了

    解压:uncompress

    2、gzip:会替换源文件

    解压:-d或gunzip

    ]$ gzip cdp_w_picpath.iso

    $ ll cdp_w_picpath.iso.gz

    -rw-r--r--. 1 bill.ding it 12462 10月 10 18:13 cdp_w_picpath.iso.gz

    3、bzip2:压缩率比gzip更高,也会替换源文件

    解压:-d或bunzip2

    ]$ bzip2 cdp_w_picpath.iso

    ]$ ll cdp_w_picpath.iso.bz2

    -rw-r--r--. 1 bill.ding it 11650 10月 10 18:13 cdp_w_picpath.iso.bz2

    4、zip:压缩

    unzip解压

    二、tar命令:

    1、tar cvf /tmp/root.tar .       打包但并没有压缩

    $ tar cvf /tmp/tar/bill.tar .

    $ ls /tmp/tar/bill.tar -l

    -rw-r--r--. 1 bill.ding it 1054720 12月 20 16:41 /tmp/tar/bill.tar

    2、tar rvf /tmp/root.tar /etc/passwd /etc/shadow  追加这2个文件,打包到root.tar文件中

    ]$ tar rvf /tmp/tar/bill.tar /tmp/passwd

    tar: 从成员名中删除开头的“/”

    /tmp/passwd

    3、tar xvf /tmp/root.tar

    ]$ tar xvf bill.tar

    4、tar xvf /tmp/root.tar -C /tmp/dir       解压到指定目录

    ]$ tar xvf bill.tar -C /tmp/ttt/

    5、tar tvf /tmp/root.tar  查看包的内容

    ]$ tar tvf bill.tar | less

    drwxrwxrwt bill.ding/it 0 2013-12-20 16:04 ./

    -rw-r--r-- bill.ding/it 307 2013-10-08 16:19 ./multi-read.sh

    -rw-r--r-- bill.ding/it 5 2013-10-14 17:35 ./kk2

    -rw-r--r-- bill.ding/it 322 2013-11-11 16:45 ./avoid-subshell.sh

    -rw-r--r-- bill.ding/it 327 2013-10-31 17:55 ./wf2.sh.uppercase

    -rw-r--r-- bill.ding/it 395 2013-12-12 17:30 ./ex24-1.sh

    6、tar cvfz /tmp/root.tar.gz /root 打包压缩成gzip格式,解压时会多个root目录如:你现在在tmp目录下解压时会出现:

    /tmp/root/1....abc.*

    如果是用tar cvfz /tmp/root.tar.gz . 打包解压时没有root目录,直接在/tmp下生成文件

    ]$ ll

    总用量 1312

    -rw-r--r--. 1 bill.ding it 1054720 12月 20 16:53 bill.tar

    -rw-r--r--. 1 bill.ding it 285827 12月 20 16:59 bill.tar.gz

    r]$ pwd

    /tmp/tar

    [bill.ding@ns1 tar]$tar cvf bill.tar ~bill.ding/bin2/

    [bill.ding@ns1 tar]$ tar xvf bill.tar -C /tmp/ttt/

    $ ls /tmp/ttt/

    home

    [bill.ding@ns1 tar]$ ls /tmp/ttt/home/bill.ding/

    bin2

    [bill.ding@ns1 tar]$ ls /tmp/ttt/home/bill.ding/bin2/

    1.data fc4upd.sh quote-fetch.sh

    如果打包是用.来代替的话:

    ]$ pwd

    /home/bill.ding/bin2

    ]$ tar cvf /tmp/tar/bill.tar .

    ]$ tar xvf /tmp/tar/bill.tar -C /tmp/ttt/

    ]$ ls /tmp/ttt/

    1.data fibo.sh ra2ogg.sh  -----直接就是文件内容,没有目录了

    7、tar zxvf /tmp/root.tar.gz:解压

    $ tar zxvf bill.tar.gz

    $ ls -R

    .:

    bill.tar bill.tar.gz home

    ./home:

    bill.ding

    ./home/bill.ding:

    bin2

    ./home/bill.ding/bin2:

    1.data fc4upd.sh quote-fetch.sh

    8、tar zxvf /tmp/root.tar.gz -C /tmp:解压时指定目录位置

    $ pwd

    /tmp/tar

    [bill.ding@ns1 tar]$ tar zxvf bill.tar.gz -C /tmp/ttt/

    ]$ ls /tmp/ttt/

    home

    [bill.ding@ns1 tar]$ ls /tmp/ttt/home/

    bill.ding

    [bill.ding@ns1 tar]$ ls /tmp/ttt/home/bill.ding/

    bin2

    [bill.ding@ns1 tar]$ ls /tmp/ttt/home/bill.ding/bin2/

    1.data fc4upd.sh quote-fetch.sh

    9、tar tzvf /tmp/root.tar.gz:查看包内容

    ]$ tar tzvf bill.tar.gz | less

    drwxrwxrwt bill.ding/it 0 2013-12-20 16:04 home/bill.ding/bin2/

    -rw-r--r-- bill.ding/it 307 2013-10-08 16:19 home/bill.ding/bin2/multi-read.sh

    10、tar cvfj /tmp/root.tar.gz /root:打包并压缩成bzip2格式,其它选项与7-9命令一样,只是将z替换成j而已

    $ tar cvfj bill.tar.bz2 ~bill.ding/bin2/

    $ ll

    总用量 1464

    -rw-r--r--. 1 bill.ding it 1054720 12月 20 16:53 bill.tar

    -rw-r--r--. 1 bill.ding it 151906 12月 20 17:04 bill.tar.bz2

    -rw-r--r--. 1 bill.ding it 285827 12月 20 16:59 bill.tar.gz

    更多相关内容
  • 7-zip怎么把大文件压缩到最小

    千次阅读 2021-06-05 06:06:11
    7-Zip一款压缩软件,号称有着现今...7-zip软件怎么把大文件压缩到最小?1、先在本站下载并安装好7-zip软件,然后点击要压缩的文件右击先查看下源文件大小,简单记录下。在想要压缩保存的大文件上点击右键,选择7-zi...

    7-Zip一款压缩软件,号称有着现今最高压缩比。7-Zip官方版不仅支持独有的7z文件格式,而且还支持各种其它压缩文件格式,包括ZIP、 RAR、CAB、GZIP、BZIP2和TAR,是一款拥有极高压缩比的开源压缩软件。7-zip软件怎么把大文件压缩到最小?

    1、先在本站下载并安装好7-zip软件,然后点击要压缩的文件右击先查看下源文件大小,简单记录下。在想要压缩保存的大文件上点击右键,选择7-zip-添加到压缩包。打开一个“添加到压缩包”的窗口。

    f3d797d097cd2bfa58a4002a25640e15.png

    2、在压缩窗口里面设置压缩格式,压缩等级上选择最大压缩,压缩格式选择为7z,一般来说这个格式是压缩比率最高的一种,能够将文件尽量的压缩。是否加密或修改压缩路径这些内容大家可根据自己的需求来设置。选择默认选项不作更改了,设置好后点击确定,软件将会对文件进行压缩。

    3cfdd47b2b56d2d1e14a1d340bcbcf8a.png

    3、压缩完成后,找到已经压缩的包,右击点击属性,看到文件大小已经比之前小了好多。如果还想再缩小压缩包的话,很容易导致文件受损,所以请用户谨慎选择。

    0a2d41368835d1defe3ce06bc0a9ea3e.png

    4、同样使用7-zip压缩,把文件以.zip格式进行压缩。压缩完成,可以再来查看一下文件大小,可以看到相同的文件压缩使用7z格式能将文件压缩更小。

    c67d785af9c556309b76102aaf590732.png

    展开全文
  • Linux 压缩打包命令详细教程

    千次阅读 2021-05-09 01:34:15
    本文介绍的压缩打包命令包括tar、gzip、zcat、bzip2、bzcat、compress、cpio等,命令参数详细说明加上实例,方便大家学习与掌握。一、tar命令[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个...

    本文介绍的压缩打包命令包括tar、gzip、zcat、bzip2、bzcat、compress、cpio等,命令参数详细说明加上实例,方便大家学习与掌握。

    一、tar命令

    [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....

    参数:

    -c :建立一个打包文件(create)

    -x :解开一个打包文件

    -t :查看tarfile里面的文件

    c/x/t仅能同时存在一个

    -z :是否同时使用gzip来压缩

    -j :是否同时具有bzip2来压缩

    -v :压缩的过程中显示文件

    这个很常用,但不建议用在背景执行过程

    -f :指定文件名

    f 之后要立即接档名,不能再加参数(即f要放到最后)

    -p :使用原文件的原来属性(属性不会依据使用者而变)

    -P :使用绝对路径来压缩

    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

    --exclude FILE:在压缩的过程中,不要将 FILE 打包!

    范例:

    范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

    [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!

    [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩

    [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

    # 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

    # 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~

    # 如果加 j 参数,则以 .tar.bz2 来作为附档名

    # 上述指令在执行的时候,会显示一个警告讯息:

    # 『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定。

    范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件

    [root@linux ~]# tar -ztvf /tmp/etc.tar.gz

    # 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,

    # 就得要加上 z 这个参数了!这很重要的!

    范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

    [root@linux ~]# cd /usr/local/src

    [root@linux src]# tar -zxvf /tmp/etc.tar.gz

    # 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

    # 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz

    # 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc

    # 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

    范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

    [root@linux ~]# cd /tmp

    [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

    # 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,

    # 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

    范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限

    [root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

    # 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

    范例六:在 /home 当中,比 2005/06/01 新的文件才备份

    [root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home

    范例七:我要备份 /home, /etc ,但不要 /home/dmtsai

    [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

    二、gzip, zcat命令

    [root@linux ~]# gzip [-cdt#] 档名

    [root@linux ~]# zcat 档名.gz

    参数:

    -c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理;

    -d :解压缩的参数;

    -t :可以用来检验一个压缩档的一致性~看看文件有无错误;

    -# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6 ~

    范例:

    范例一:将 /etc/man.config 複制到 /tmp ,并且以 gzip 压缩

    [root@linux ~]# cd /tmp

    [root@linux tmp]# cp /etc/man.config .

    [root@linux tmp]# gzip man.config

    # 此时 man.config 会变成 man.config.gz !

    范例二:将范例一的文件内容读出来!

    [root@linux tmp]# zcat man.config.gz

    # 此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!!

    范例三:将范例一的文件解压缩

    [root@linux tmp]# gzip -d man.config.gz

    范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件

    [root@linux tmp]# gzip -9 -c man.config > man.config.gz

    三、bzip2, bzcat 命令

    [root@linux ~]# bzip2 [-cdz] 档名

    [root@linux ~]# bzcat 档名.bz2

    参数:

    -c :将压缩的过程产生的资料输出到萤幕上!

    -d :解压缩的参数

    -z :压缩的参数

    -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

    范例:

    范例一:将刚刚的 /tmp/man.config 以 bzip2 压缩

    [root@linux tmp]# bzip2 -z man.config

    # 此时 man.config 会变成 man.config.bz2 !

    范例二:将范例一的文件内容读出来!

    [root@linux tmp]# bzcat man.config.bz2

    # 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!!

    范例三:将范例一的文件解压缩

    [root@linux tmp]# bzip2 -d man.config.bz2

    范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件

    [root@linux tmp]# bzip2 -9 -c man.config > man.config.bz2

    四、compress 命令

    [root@linux ~]# compress [-dcr] 文件或目录

    参数:

    -d :用来解压缩的参数

    -r :可以连同目录下的文件也同时给予压缩呢!

    -c :将压缩资料输出成为 standard output (输出到萤幕)

    范例:

    范例一:将 /etc/man.config 複制到 /tmp ,并加以压缩

    [root@linux ~]# cd /tmp

    [root@linux tmp]# cp /etc/man.config .

    [root@linux tmp]# compress man.config

    [root@linux tmp]# ls -l

    -rw-r--r-- 1 root root 2605 Jul 27 11:43 man.config.Z

    范例二:将刚刚的压缩档解开

    [root@linux tmp]# compress -d man.config.Z

    范例三:将 man.config 压缩成另外一个文件来备份

    [root@linux tmp]# compress -c man.config > man.config.back.Z

    [root@linux tmp]# ll man.config*

    -rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config

    -rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z

    # 这个 -c 的参数比较有趣!他会将压缩过程的资料输出到萤幕上,而不是写入成为

    # file.Z 文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。

    # 关於资料流重导向,我们会在 bash shell 当中详细谈论的啦!

    五、cpio 命令

    [root@linux ~]# cpio -covB > [file|device] <==备份

    [root@linux ~]# cpio -icduv < [file|device] <==还原

    参数:

    -o :将资料 copy 输出到文件或装置上

    -i :将资料自文件或装置 copy 出来系统当中

    -t :查看 cpio 建立的文件或装置的内容

    -c :一种较新的 portable format 方式储存

    -v :让储存的过程中文件名称可以在萤幕上显示

    -B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes !

    这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)

    -d :自动建立目录!

    由於 cpio 的内容可能不是在同一个目录内,

    如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,

    就可以自动的将需要的目录建立起来了!

    -u :自动的将较新的文件覆盖较旧的文件!

    范例:

    范例一:将所有系统上的资料通通写入磁带机内!

    [root@linux ~]# find / -print | cpio -covB > /dev/st0

    # 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0 喔!

    范例二:检查磁带机上面有什么文件?

    [root@linux ~]# cpio -icdvt < /dev/st0

    [root@linux ~]# cpio -icdvt < /dev/st0 > /tmp/content

    # 第一个动作当中,会将磁带机内的档名列出到萤幕上面,而我们可以透过第二个动作,

    # 将所有的档名通通纪录到 /tmp/content 文件去!

    范例三:将磁带上的资料还原回来~

    [root@linux ~]# cpio -icduv < /dev/st0

    # 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0 喔!

    范例四:将 /etc 底下的所有『文件』都备份到 /root/etc.cpio 中!

    [root@linux ~]# find /etc -type f | cpio -o > /root/etc.cpio

    # 这样就能够备份啰~您也可以将资料以 cpio -i < /root/etc.cpio

    # 来将资料捉出来!!!!

    六、dd 命令

    [root@linux ~]# dd if="input_file" of="outptu_file" bs="block_size" count="number"

    参数:

    if :就是 input file 啰~也可以是装置喔!

    of :就是 output file 喔~也可以是装置;

    bs :规划的一个 block 的大小,如果没有设定时,预设是 512 bytes

    count:多少个 bs 的意思。

    范例:

    范例一:将 /etc/passwd 备份到 /tmp/passwd.back 当中

    [root@linux ~]# dd if=/etc/passwd of=/tmp/passwd.back

    3+1 records in

    3+1 records out

    [root@linux ~]# ll /etc/passwd /tmp/passwd.back

    -rw-r--r-- 1 root root 1746 Aug 25 14:16 /etc/passwd

    -rw-r--r-- 1 root root 1746 Aug 29 16:57 /tmp/passwd.back

    # 仔细的看一下,我的 /etc/passwd 文件大小为 1746 bytes,因为我没有设定 bs ,

    # 所以预设是 512 bytes 为一个单位,因此,上面那个 3+1 表示有 3 个完整的

    # 512 bytes,以及未满 512 bytes 的另一个 block 的意思啦!

    # 事实上,感觉好像是 cp 这个指令啦~

    范例二:备份 /dev/hda 的 MBR

    [root@linux ~]# dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1

    1+0 records in

    1+0 records out

    # 这就得好好瞭解一下啰~我们知道整颗硬盘的 MBR 为 512 bytes,

    # 就是放在硬盘的第一个 sector 啦,因此,我可以利用这个方式来将

    # MBR 内的所有资料都纪录下来,真的很厉害吧! ^_^

    范例三:将整个 /dev/hda1 partition 备份下来。

    [root@linux ~]# dd if=/dev/hda1 of=/some/path/filenaem

    # 这个指令很厉害啊!将整个 partition 的内容全部备份下来~

    # 后面接的 of 必须要不是在 /dev/hda1 的目录内啊~否则,怎么读也读不完~

    # 这个动作是很有效用的,如果改天你必须要完整的将整个 partition 的内容填回去,

    # 则可以利用 dd if=/some/file of=/dev/hda1 来将资料写入到硬盘当中。

    # 如果想要整个硬盘备份的话,就类似 Norton 的 ghost 软体一般,

    # 由 disk 到 disk ,嘿嘿~利用 dd 就可以啦~厉害厉害!

    展开全文
  • 展开全部有三种方式实现java压缩:1、jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称32313133353236313431303231363533e59b9ee7ad9431333363393666带中文时,出现乱码问题,实现代码如下:/*** ...

    展开全部

    有三种方式实现java压缩:

    1、jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称32313133353236313431303231363533e59b9ee7ad9431333363393666带中文时,出现乱码问题,实现代码如下:

    /**

    * 功能:把 sourceDir 目录下的所有文件进行 zip 格式的压缩,保存为指定 zip 文件

    * @param sourceDir 如果是目录,eg:D:\\MyEclipse\\first\\testFile,则压缩目录下所有文件;

    * 如果是文件,eg:D:\\MyEclipse\\first\\testFile\\aa.zip,则只压缩本文件

    * @param zipFile 最后压缩的文件路径和名称,eg:D:\\MyEclipse\\first\\testFile\\aa.zip

    */

    public File doZip(String sourceDir, String zipFilePath) throws IOException {

    File file = new File(sourceDir);

    File zipFile = new File(zipFilePath);

    ZipOutputStream zos = null;

    try {

    // 创建写出流操作

    OutputStream os = new FileOutputStream(zipFile);

    BufferedOutputStream bos = new BufferedOutputStream(os);

    zos = new ZipOutputStream(bos);

    String basePath = null;

    // 获取目录

    if(file.isDirectory()) {

    basePath = file.getPath();

    }else {

    basePath = file.getParent();

    }

    zipFile(file, basePath, zos);

    }finally {

    if(zos != null) {

    zos.closeEntry();

    zos.close();

    }

    }

    return zipFile;

    }

    /**

    * @param source 源文件

    * @param basePath

    * @param zos

    */

    private void zipFile(File source, String basePath, ZipOutputStream zos)

    throws IOException {

    File[] files = null;

    if (source.isDirectory()) {

    files = source.listFiles();

    } else {

    files = new File[1];

    files[0] = source;

    }

    InputStream is = null;

    String pathName;

    byte[] buf = new byte[1024];

    int length = 0;

    try{

    for(File file : files) {

    if(file.isDirectory()) {

    pathName = file.getPath().substring(basePath.length() + 1) + "/";

    zos.putNextEntry(new ZipEntry(pathName));

    zipFile(file, basePath, zos);

    }else {

    pathName = file.getPath().substring(basePath.length() + 1);

    is = new FileInputStream(file);

    BufferedInputStream bis = new BufferedInputStream(is);

    zos.putNextEntry(new ZipEntry(pathName));

    while ((length = bis.read(buf)) > 0) {

    zos.write(buf, 0, length);

    }

    }

    }

    }finally {

    if(is != null) {

    is.close();

    }

    }

    }

    2、使用org.apache.tools.zip.ZipOutputStream,代码如下,

    package net.szh.zip;

    import java.io.BufferedInputStream;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.util.zip.CRC32;

    import java.util.zip.CheckedOutputStream;

    import org.apache.tools.zip.ZipEntry;

    import org.apache.tools.zip.ZipOutputStream;

    public class ZipCompressor {

    static final int BUFFER = 8192;

    private File zipFile;

    public ZipCompressor(String pathName) {

    zipFile = new File(pathName);

    }

    public void compress(String srcPathName) {

    File file = new File(srcPathName);

    if (!file.exists())

    throw new RuntimeException(srcPathName + "不存在!");

    try {

    FileOutputStream fileOutputStream = new FileOutputStream(zipFile);

    CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,

    new CRC32());

    ZipOutputStream out = new ZipOutputStream(cos);

    String basedir = "";

    compress(file, out, basedir);

    out.close();

    } catch (Exception e) {

    throw new RuntimeException(e);

    }

    }

    private void compress(File file, ZipOutputStream out, String basedir) {

    /* 判断是目录还是文件 */

    if (file.isDirectory()) {

    System.out.println("压缩:" + basedir + file.getName());

    this.compressDirectory(file, out, basedir);

    } else {

    System.out.println("压缩:" + basedir + file.getName());

    this.compressFile(file, out, basedir);

    }

    }

    /** 压缩一个目录 */

    private void compressDirectory(File dir, ZipOutputStream out, String basedir) {

    if (!dir.exists())

    return;

    File[] files = dir.listFiles();

    for (int i = 0; i < files.length; i++) {

    /* 递归 */

    compress(files[i], out, basedir + dir.getName() + "/");

    }

    }

    /** 压缩一个文件 */

    private void compressFile(File file, ZipOutputStream out, String basedir) {

    if (!file.exists()) {

    return;

    }

    try {

    BufferedInputStream bis = new BufferedInputStream(

    new FileInputStream(file));

    ZipEntry entry = new ZipEntry(basedir + file.getName());

    out.putNextEntry(entry);

    int count;

    byte data[] = new byte[BUFFER];

    while ((count = bis.read(data, 0, BUFFER)) != -1) {

    out.write(data, 0, count);

    }

    bis.close();

    } catch (Exception e) {

    throw new RuntimeException(e);

    }

    }

    }

    3、可以用ant中的org.apache.tools.ant.taskdefs.Zip来实现,更加简单。

    package net.szh.zip;

    import java.io.File;

    import org.apache.tools.ant.Project;

    import org.apache.tools.ant.taskdefs.Zip;

    import org.apache.tools.ant.types.FileSet;

    public class ZipCompressorByAnt {

    private File zipFile;

    public ZipCompressorByAnt(String pathName) {

    zipFile = new File(pathName);

    }

    public void compress(String srcPathName) {

    File srcdir = new File(srcPathName);

    if (!srcdir.exists())

    throw new RuntimeException(srcPathName + "不存在!");

    Project prj = new Project();

    Zip zip = new Zip();

    zip.setProject(prj);

    zip.setDestFile(zipFile);

    FileSet fileSet = new FileSet();

    fileSet.setProject(prj);

    fileSet.setDir(srcdir);

    //fileSet.setIncludes("**/*.java"); 包括哪些文件或文件夹 eg:zip.setIncludes("*.java");

    //fileSet.setExcludes(...); 排除哪些文件或文件夹

    zip.addFileset(fileSet);

    zip.execute();

    }

    }

    测试一下

    package net.szh.zip;

    public class TestZip {

    public static void main(String[] args) {

    ZipCompressor zc = new ZipCompressor("E:\\szhzip.zip");

    zc.compress("E:\\test");

    ZipCompressorByAnt zca = new ZipCompressorByAnt("E:\\szhzipant.zip");

    zca.compress("E:\\test");

    }

    }

    本回答被提问者采纳

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 【1】ZIP,是一个文件的压缩的算法,原名Deflate(真空),发明者为菲利普·卡兹(Phil Katz)),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为 application/zip 。目前,ZIP格式...
  • 目前用过最好的压缩工具,全免费,占用资源小,压缩率高,破损低,完美强大
  • 基于vue的一款图片裁剪压缩工具,可以将用户上传的图片进行最小尺寸压缩压缩完成后不大于100k,并转化成base64格式,可以直接放入img标签中,可以在控制台看出图片压缩信息
  • 验证方法http://localhost/DemoSpringMVC/user/list.action,SpringMVC4 最小框架 全注解 最小Demo JDK8+Tomcat9,纯净springmvc框架,无其他框架,springMVC-servlet.xml配置
  • 一般直接压缩项目文件会使压缩包体积很大,因为项目文件内包含了临时文件,Save文件等等不是必需的文件,因此应该直接用虚幻内的File→Package Project→Zip Up Project,即使是几百兆的项目文件也会被压缩成几兆...
  • 超级高清视频压缩软件(H265)4.9.1,支持H265等多种高清模式,免费的哈,最大的可能保证视频清晰度,从而缩小视频体积,内附汉化补丁。
  • Ashampoo ZIP Pro 是一款由著名的 Ashampoo(阿香婆)公司开发的一款文档压缩管理工具。Ashampoo ZIP Pro 让你不用再烦恼各种格式的支持!ZIP、RAR、TAR、CAB 等等 – Ashampoo ZIP 都能快速可靠的打开,还会自动...
  • tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全...zip 压缩方法:压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归zip [参数] [打包后的文件名] [打包的目录路径]解压 unzip xahot.zip ...
  • 我们要解压缩tar文件,解压缩zip文件,然后在zip中处理文件。 示例0 此示例显示在.tgz文件之前,一切按预期进行。 0. cd example-0 1. gw clean unzipAndRezipZip 2. tree . ├── build │ └── zipOutput ...
  • 最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩,...
  • java zip 压缩 实战

    2018-07-12 18:07:35
    // 默认的等级压缩-1 level - the compression level (0-9) 等级9的时候压缩得到的压缩文件最小 zos.setLevel(-1); if (src.isDirectory()) { IfisDirectory(src, zos); zos.close(); } else...
  • 对各种图片进行压缩压缩不失真。大图片压缩最小可在50k以内,可以根据自己的需求进行设置图片压缩后的大小.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • DOS 最小ZIP 解压 缩 程序 工具 TUNZ 2.5KB 比PKUNZIP 好用, 可以解压含有文件夹的压缩包.
  • ZipHelper.Compress("../../../xxx.xx", "../../../xx.zip", ZipDataUnit.MB, iMinLength);//分卷压缩 解压使用方法 : string strUnZipPath = Environment.CurrentDirectory + "\\DeCompress";
  • heatshrink, 嵌入式/实时系统的数据压缩库 heatshrink嵌入式/实时系统的数据压缩/解压缩库。主要功能:占用的内存使用率为 ( 。最小 50字节) 对于某些小于字节的情况非常有用,对于许多具有 字节的通用案例有用。按...
  • rar、zip、7z等压缩率的测试

    千次阅读 2020-05-19 08:15:08
    划重点: 压缩率取决于文件的信息熵,文件的信息熵越小,被压缩后的文件体积越小,因此文件压缩有一定的限度。 举个栗子(仅说明原理,不涉及实际算法): 一个文件内容为:abc123qqqq6562abc123abc123abc123 压缩时...
  • Linux压缩zip文件

    2021-05-15 03:10:42
    1. Linux下zip工具简介Linux上使用命令行版的zip压缩工具创建zip压缩文件。2. 安装zip工具以CentOS7.5为例,默认情况下,最小化安装并没有包括zip套件。[root@zcwyou ~]# yum -y install zip输出以下信息表明安装...
  • react-zip-下载 ... 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ,您将无法返回! 如果您对
  • ZIP压缩算法原理解析(好文推荐,看完就懂)

    万次阅读 多人点赞 2019-05-28 16:08:02
    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩,...
  • 【预测模型】基于鲸鱼算法优化最小二乘支持向量机lssvm实现预测matlab源码.zip
  • zip压缩算法分析(2)

    千次阅读 2016-09-12 17:58:25
    zip压缩算法分析(2)
  • 只需运行此命令,它将自动下载正确的ZIP文件并为您解压缩。 出于兼容性原因,这些发行版分为几个版本。 NET Framework-需要Windows 10上预安装的.NET Framework 4.6.1运行时。推荐。 NET Core-自包含不需要安装...
  • Linux 压缩和解压 zip

    2021-05-12 09:25:07
    之前我写过一篇教程 Linux压缩和打包文件,只说了 tar、tar.gz、tar.bz2,这里就继续来写 zip,本来是要把 zip 和 rar 写在一起的,但是因为太长,所以准备分开写。ZIP文件格式是一种数据压缩和文档储存的文件格式...
  • 最小LZMA( minlzma )项目旨在提供一个极简的,跨平台的,高度注释的,符合标准的C库( minlzlib ),用于在XZ容器中解压缩LZMA格式的LZMA2封装的压缩数据,这可以使用Python 3.6生成,7-zip和xzutils。...
  • zip4j压缩与解压

    2020-09-11 16:37:37
    zip4j压缩与解压 官方文档 GitHub: https://github.com/srikanth-lingala/zip4j API 1.3.1: http://javadox.com/net.lingala.zip4j/zip4j/1.3.1/net/lingala/zip4j/core/ZipFile.html jar包下载1:...
  • Linux 中大家在下载文件时常见的压缩文件有 .tar、.zip 或 .gz 等扩展名,大多数用户都已经见怪不怪了。那 Linux 中为什么要搞出这么多种压缩格式,Tar、Zip 和 Gz 之间到底有什么区别与不同呢?本文系统极客就为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,234
精华内容 10,493
关键字:

zip如何压缩到最小