使用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上传并压缩图片(等比例压缩或者原尺寸压缩)

先看效果: 原图:1.33M 处理后:27.4kb 关键代码; package codeGenerate.util; import java.awt.Color; import ja...
  • xb12369
  • xb12369
  • 2016年04月11日 14:37
  • 12329

JAVA实现实用的ZIP压缩与解压

程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression) 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和...
  • z69183787
  • z69183787
  • 2014年08月14日 11:10
  • 2925

Okio读写流源码详解(第三篇(GzipSink压缩源码详解))

看源码,首先得熟练掌握这个api怎么用,那么先看看这两个类怎么用的,先看GzipSink怎么用的 Sink sink=Okio.sink(new File(filePath)); BufferedSi...
  • xiatiandefeiyu
  • xiatiandefeiyu
  • 2017年09月19日 10:15
  • 232

maven项目设置编译的jdk版本

org.apache.maven.plugins maven-compiler-plugin 3.5.1 1.8 1.8 ...
  • fuck487
  • fuck487
  • 2017年07月04日 16:56
  • 74

设计模式——观察者模式 JDK内置的Observable类和Obsever接口

Java的AWT和Swing的事件监听都是基于观察者模式。并且观察者模式
  • u013147914
  • u013147914
  • 2014年05月07日 16:16
  • 891

zip压缩流转本地文件及解压

有一个需求,HTTP获取到zip文件的byte数组,需要转为本地的zip或是解压zip文件。 1. 用到的class import java.io.FileOutputStream; import...
  • huyong1990
  • huyong1990
  • 2016年01月07日 15:55
  • 1398

Okio读写流源码详解(第三篇(GzipSink压缩源码详解))

看源码,首先得熟练掌握这个api怎么用,那么先看看这两个类怎么用的,先看GzipSink怎么用的 Sink sink=Okio.sink(new File(filePath)); BufferedSi...
  • xiatiandefeiyu
  • xiatiandefeiyu
  • 2017年09月19日 10:15
  • 232

jdk自带常用命令行工具使用

下面是笔者整理的jdk自带的常用命令行工具的使用方法,全部原创,转载请注明出处,并贴上链接,谢谢! jps命令使用 jstat命令使用 jinfo命令使用 jmap命令使用 jhat命令使用 jsta...
  • WinWill2012
  • WinWill2012
  • 2015年06月04日 17:36
  • 2383

JDK自带工具类

下面,我们就按照工具文件名称的英文顺序来逐一介绍JDK内置的工具。 工具名称 描述 appletviewer.exe 用于运行并浏览applet小程序。 ...
  • mengdonghui123456
  • mengdonghui123456
  • 2017年08月13日 19:39
  • 583

压缩字节

public class CompressHelper {     #region 压缩字节     public byte[] CompressBytes( byte[] data ) ...
  • Amber_R
  • Amber_R
  • 2018年01月17日 15:07
  • 28
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JDK自带的方法进行文件压缩
举报原因:
原因补充:

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