java的压缩和解压demo

来源:互联网 发布:windows视频放大缩小 编辑:程序博客网 时间:2024/06/14 03:34

今天看了一下think in java   的压缩和解压这块,感觉用到的挺多的,做个笔记

/*** Project Name:mynio* File Name:ZipCompress.java* Package Name:com.iflytek.zip* Date:2016-8-22下午10:04:04* Copyright (c) 2016, syzhao@iflytek.com All Rights Reserved.**/package com.iflytek.zip;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.Enumeration;import java.util.zip.Adler32;import java.util.zip.CheckedInputStream;import java.util.zip.CheckedOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;public class ZipCompress{        /**     * main:(这里用一句话描述这个方法的作用). <br/>     * @author syzhao     * @param args     * @throws Exception      * @since JDK 1.6     */    public static void main(String[] args)        throws Exception    {        //文件输出流   在这里我直接创建好了一个test.zip   当然可以动态创建,这里不多说了        FileOutputStream fos = new FileOutputStream(new File("D:/test.zip"));        //校验过滤流,,顾名思义 于维护数据校验和用于维护数据完整性的   Checksum有两种类型:Adler32(快一些)和CRC32(慢一些,但更准确) 根据需要衡量一下        CheckedOutputStream cos = new CheckedOutputStream(fos, new Adler32());        //压缩输出流        ZipOutputStream zos = new ZipOutputStream(cos);        //缓冲        BufferedOutputStream bos = new BufferedOutputStream(zos);        //注释        zos.setComment("这是一个测试");        //对于每一个要要加入压缩档案的文件,都必须调用putNextEntry,并出入一个ZipEntry对象;至于有什么用自行百度,,,,,        zos.putNextEntry(new ZipEntry("WeatherWS11.js"));//WeatherWS11.js 这个是打开zip文件后看到的文件名称,可以测试一下        //缓冲reader        // BufferedReader br = new BufferedReader(new FileReader(new File("D:/WeatherWS.js")));        //读取要压缩的文件内容,可以注释掉,,        /*int c;        while ((c = br.read()) != -1)        {            bos.write(c);        }        br.close();*/        System.err.println("Checksum:" + cos.getChecksum().getValue());        bos.close();        /************************以上输出zip,结束**************************/                /************************以下读取zip,开始**************************/                System.out.println("读取文件:");        //文件输入流        FileInputStream fis = new FileInputStream(new File("D:/test.zip"));        //校验过滤流,,顾名思义 于维护数据校验和用于维护数据完整性的   Checksum有两种类型:Adler32(快一些)和CRC32(慢一些,但更准确) 根据需要衡量一下        CheckedInputStream cis = new CheckedInputStream(fis, new Adler32());        //zip流        ZipInputStream zis = new ZipInputStream(cis);        //缓冲        BufferedInputStream bis = new BufferedInputStream(zis);                ZipEntry ze;        while ((ze = zis.getNextEntry()) != null)        {            System.out.println("rend file:" + ze);            int x;            while ((x = bis.read()) != -1)            {                //  System.out.println(x);            }        }                bis.close();                /***************解压结束******************************/                //解压更简单的方法        ZipFile zf = new ZipFile("D:/test.zip");        Enumeration e = zf.entries();        while (e.hasMoreElements())        {            ZipEntry z = (ZipEntry)e.nextElement();            System.out.println("file:" + z);        }                zf.close();    }    }


0 0
原创粉丝点击