使用JDK自带的方法进行文件压缩

原创 2016年05月30日 16:46:57

  在项目中我们常常会需要把文件进行压缩处理,Java中压缩文件的方法有很多种,我看了很多资料,网上很多压缩的方法都是使用到了第三方的jar包,个人感觉这样很麻烦,于是找了很久,找到了一个不需要任何第三方的jar包就能进行文件压缩的方法,在这里分享给大家,希望能帮到有需要的小伙伴。。。。

   /**
   *  
    * @param zipFileName  压缩后的zip文件名称
    * @param inputFile  需要压缩的文件
    * @throws Exception
    */
 private static void zip(String zipFileName, File inputFile) throws Exception {  
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(  
                    zipFileName));  
            BufferedOutputStream bo = new BufferedOutputStream(out);  
            zip(out, inputFile, inputFile.getName(), bo);  
            bo.close();  
            out.close(); 
        }  

        private static void zip(ZipOutputStream out, File f, String base,  
                BufferedOutputStream bo) throws Exception {
            if (f.isDirectory()) {  
                File[] fl = f.listFiles();  
                if (fl.length == 0) {  
                    out.putNextEntry(new ZipEntry(base + "/")); 
                }  
                for (int i = 0; i < fl.length; i++) {  
                    zip(out, fl[i], base + "/" + fl[i].getName(), bo);  
                }  
            } else {  
                out.putNextEntry(new ZipEntry(base)); 
                FileInputStream in = new FileInputStream(f);  
                BufferedInputStream bi = new BufferedInputStream(in);  
                int b;  
                while ((b = bi.read()) != -1) {  
                    bo.write(b); 
                }  
                bo.flush();
                bi.close();  
                in.close();
            }  
        }  

使用方法相当简单,代码如下

zip("E:\\filecopy\\app1.zip",new File("E:\\filecopy\\app"));  

这样就可以通过jdk自带的方法进行文件的压缩处理,是不是很方便呢?有兴趣的小伙伴可以试试看。。。

Java JDK自带的压缩和解压API

最近在工作中遇到一系列对文件的操作问题,因此自己整理了一下。该工具能针对不同情况的目录结构进行压缩与解压缩,使用方法简单方便。 import java.io.File; import java.io...

基于JDK API实现文件的压缩与解压

在实际开发过程中,会经常遇到下载附件或者导出报表的情况,有时候文件会比较多,用户更希望多个文件可以一起打包进行下载。这时就需要实现两部分功能:一部分是多个文件的打包处理,一部分是压缩文件的下载功能。 ...

各个版本JDK官方下载地址

每次要找一个jdk的版本的时候, 总是在sun的官网转得晕头转向也找不到,其它网站的又不敢下,终于不知道在那里点到了archrive(档案库),记录下来,sun的各java产品的各个版本都全  ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

使用JDK自带的native2ascii工具对properties文件进行编码转换

1. native2ascii介绍        native2ascii.exe 是 Java 的一个文件转码工具,是将特殊各异的内容转为用指定的编码标准文体形式,它通常位于 JDK_home...

使用JAVA自带的zipInputStream进行解压缩文件包的操作

package com.ffcs.icity.common.util; import java.io.ByteArrayInputStream; import java.io.File; impor...

使用windows自带的命令进行文件或文件夹的压缩

系统环境: 需求:因为是作为服务器端的,不想安装任何第三方软件,所以决定使用windows自带的命令进行文件或文件夹的压缩 解决过程: 通常我们使用C:\Documents and Settings...
  • M_S_C
  • M_S_C
  • 2013年07月04日 14:14
  • 5630

maven编译指定使用自己配置的jdk而不是eclipse自带的解决方法

通常我们使用maven管理项目时,下载好项目后,需要使用maven eclipse:eclipse 命令把项目转成eclipse识别的项目。 但是有的时候,代码中会使用了jdk中一些比较特殊的方法和类...

JDK自带的转码工具native2ascii的使用方法详解

JDK自带的转码工具native2ascii的使用方法详解 背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(prop...

黑马程序员_java用java进行复制文件(考虑使用多线程),能系统自带快吗??

我用了四条输入线程,加四条输出线程,来拷贝源文件, 结果还是慢了电脑自带的慢一大截。 希望大神能给个超电脑的。。 下面是我用多线程重新做的大文件拷贝程序: import java.io.IOExce...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JDK自带的方法进行文件压缩
举报原因:
原因补充:

(最多只允许输入30个字)