`
bruce198
  • 浏览: 236307 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

文件的压缩和解压

    博客分类:
  • java
阅读更多
java 代码
  1. //文件名:myZip.java   
  2. import java.io.*;   
  3. import java.util.*;   
  4. import java.util.zip.*;   
  5. /**  
  6.  *  Title: 文件压缩和解压 
  7.  *  Description: 使用ZipInputStream和ZipOutputStream对文件  
  8.  *                 和目录进行压缩和解压处理
  9.  *  Copyright: Copyright (c) 2003 
  10.  *  Filename: myZip.java 
  11.  * @version 1.0  
  12.  */  
  13. public class myZip{   
  14. /**  
  15.  *方法说明:实现文件的压缩处理  
  16.  *输入参数:String[] fs 压缩的文件数组  
  17.  *返回类型:  
  18.  */  
  19.   public void ZipFiles(String[] fs){   
  20.    try{   
  21.      String fileName = fs[0];   
  22.      FileOutputStream f =   
  23.        new FileOutputStream(fileName+".zip");   
  24.      //使用输出流检查   
  25.      CheckedOutputStream cs =    
  26.         new CheckedOutputStream(f,new Adler32());   
  27.       //声明输出zip流   
  28.       ZipOutputStream out =   
  29.         new ZipOutputStream(new BufferedOutputStream(cs));   
  30.       //写一个注释   
  31.       out.setComment("A test of Java Zipping");   
  32.       //对多文件进行压缩   
  33.       for(int i=1;i
  34.         System.out.println("Write file "+fs[i]);   
  35.         BufferedReader in =   
  36.            new BufferedReader(   
  37.              new FileReader(fs[i]));   
  38.          out.putNextEntry(new ZipEntry(fs[i]));   
  39.          int c;   
  40.          while((c=in.read())!=-1)   
  41.           out.write(c);   
  42.         in.close();   
  43.        }   
  44.        //关闭输出流   
  45.        out.close();   
  46.        System.out.println("Checksum::"+cs.getChecksum().getValue());   
  47.     }catch(Exception e){   
  48.        System.err.println(e);   
  49.     }   
  50.   }   
  51.   
  52.     
  53.   
  54. /**  
  55.  *方法说明:解压缩Zip文件  
  56.  *输入参数:String fileName 解压zip文件名  
  57.  *返回类型:  
  58.  */  
  59.   public void unZipFile(String fileName){   
  60.     try{   
  61.        System.out.println("读取ZIP文件........");   
  62.        //文件输入流   
  63.        FileInputStream fi =   
  64.          new FileInputStream(fileName+".zip");   
  65.        //输入流检查   
  66.        CheckedInputStream csi = new CheckedInputStream(fi,new Adler32());   
  67.        //输入流压缩   
  68.        ZipInputStream in2 =   
  69.          new ZipInputStream(   
  70.            new BufferedInputStream(csi));   
  71.        ZipEntry ze;   
  72.        System.out.println("Checksum::"+csi.getChecksum().getValue());   
  73.        //解压全部文件   
  74.        while((ze = in2.getNextEntry())!=null){   
  75.          System.out.println("Reading file "+ze);   
  76.          int x;   
  77.          while((x= in2.read())!=-1)   
  78.            //这里是写文件,write是以byte方式输出。   
  79.            System.out.write(x);   
  80.        }   
  81.        in2.close();   
  82.     }catch(Exception e){   
  83.       System.err.println(e);   
  84.     }   
  85.   }   
  86. /**  
  87.  *方法说明:读取Zip文件列表  
  88.  *输入参数:String fileName zip文件名  
  89.  *返回类型:Vector 文件列表  
  90.  */  
  91.   public Vector listFile(String fileName){   
  92.     try{   
  93.        String[] aRst=null;   
  94.        Vector vTemp = new Vector();   
  95.        //zip文件对象   
  96.        ZipFile zf = new ZipFile(fileName+".zip");   
  97.        Enumeration e = zf.entries();   
  98.        while(e.hasMoreElements()){   
  99.          ZipEntry ze2 = (ZipEntry)e.nextElement();   
  100.          System.out.println("File: "+ze2);   
  101.          vTemp.addElement(ze2);   
  102.        }   
  103.        return  vTemp;   
  104.     }catch(Exception e){   
  105.       System.err.println(e);   
  106.       return null;   
  107.     }   
  108.   }   
  109. /**  
  110.  *方法说明:主方法  
  111.  *输入参数:  
  112.  *返回类型:  
  113.  */  
  114.   public static void main(String[] args){   
  115.     try{   
  116.      String fileName = args[0];   
  117.      myZip myZip = new myZip();   
  118.      myZip.ZipFiles(args);   
  119.      myZip.unZipFile(fileName);   
  120.      Vector dd = myZip.listFile(fileName);   
  121.      System.out.println("File List: "+dd);   
  122.     }catch(Exception e){   
  123.      e.printStackTrace();   
  124.     }   
  125.   }   
  126. }   
  127.     
  128.      
分享到:
评论

相关推荐

    文件压缩和解压

    文件压缩和解压是计算机操作中的常见任务,它允许我们减少文件占用的存储空间,提高传输效率,同时便于管理和存储大量的数据。在本篇中,我们将深入探讨文件压缩的原理、常用的压缩算法以及如何利用系统函数进行文件...

    Zip文件压缩和解压

    Zip文件压缩和解压是日常计算机操作中常见的一种文件处理方式。Zip格式是一种高效的数据存储格式,它能够将多个文件和文件夹打包成一个单一的压缩文件,从而节省磁盘空间,便于传输和备份。本篇文章将深入探讨Zip...

    哈夫曼树实现文件压缩和解压(源程序+实验报告)

    从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 (2) E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码...

    zip文件压缩和解压

    zip文件压缩和解压工具类: 1.compressDirectory该方法提供将一个目录压缩为一个压缩包 2.unzip该方法提供解压缩文件

    基于哈夫曼树的文件压缩和解压(QT可视化界面)

    《基于哈夫曼树的文件压缩与解压技术在QT可视化界面中的实现》 哈夫曼编码是一种数据压缩算法,其核心是构建哈夫曼树,通过对数据出现频率的统计,构建出一棵特殊的二叉树——哈夫曼树,使得出现频率高的字符具有较...

    哈弗曼树的文件压缩和解压实验报告(C语言源代码)

    ### 哈弗曼树的文件压缩和解压实验报告 #### 1. 哈弗曼树简介 哈弗曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度最短的二叉树,即在二叉树中任何一个叶子节点的权值均大于其父节点。哈弗曼树广泛应用...

    文件压缩和解压(SharpZipLib).zip

    在IT领域,文件压缩和解压是日常工作中常见的操作,特别是在传输大文件或者节省存储空间时。SharpZipLib是一款开源的、用C#编写的压缩库,它为.NET Framework提供了全面的压缩和解压缩功能,包括ZIP、GZip、BZip2、...

    霍夫曼编码实现文件压缩和解压

    利用实现的最小堆实现霍夫曼编码,利用霍夫曼编码实现文件压缩和解压。 包括最小堆,霍夫曼编码,解压,压缩四个部分,代码功能完善,对ASCII码英文文本有1.8压缩率。使用C++编写。(现只能压缩文本文件)

    易语言模块文件压缩解压.rar

    在“易语言模块文件压缩解压.rar”这个压缩包中,包含的资源很可能是用于处理易语言程序中文件压缩和解压功能的模块。下面将详细介绍这个主题中的相关知识点。 一、易语言模块 易语言模块是易语言编程中的一个重要...

    C语言 文件压缩和解压

    利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也...在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件

    shellzip_文件压缩_解压_压缩_

    在IT行业中,文件压缩和解压是日常工作中常见的操作,特别是在处理大量数据或者进行网络传输时。本节将深入探讨shellzip的相关知识点,这是一种在VBA(Visual Basic for Applications)或VB(Visual Basic)环境中...

    MFC的极其简单的压缩和解压代码

    在IT行业中,MFC(Microsoft Foundation Classes)是一个C++...通过`unzip.cpp`、`zip.cpp`、`unzip.h`和`zip.h`这四个文件,我们可以学习到如何将这些技术整合到MFC应用程序中,为用户提供便捷的文件压缩和解压功能。

    ZIP压缩和解压类

    在IT行业中,文件压缩是一种常见的数据处理方式,用于减少文件的存储空间,便于传输和管理。ZIP格式作为其中的一种流行标准,广泛应用...封装自己的ZIP处理接口可以提高代码复用性和易用性,使文件压缩和解压更加便捷。

    数据结构大作业基于哈夫曼编码的压缩和解压实现 - 副本.doc

    该项目旨在实现基于哈夫曼编码的压缩和解压,通过创建哈夫曼树、哈夫曼编码表和队列实现文件压缩和解压。 知识点一:哈夫曼树 * 哈夫曼树是一种特殊的二叉树结构,用于构建哈夫曼编码 * 哈夫曼树的构建步骤:在...

    C++ 使用zlib压缩和解压文件

    1. **参考.txt**:这可能是包含有关如何使用zlib库进行文件压缩和解压的文本说明或示例代码。 2. **ZlibApplication3_uzip**:这个文件可能是一个已经压缩的文件,使用zlib库进行解压。 3. **ZlibApplication3_zip**...

    java文件压缩和解压 源码

    java中通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能。java源码————资源共享,一起进步。

    文件夹压缩和解压

    在IT领域,文件压缩和解压是日常工作中非常常见的操作,尤其对于处理大量数据或进行文件传输时。这里我们将深入探讨这一主题,了解其背后的原理、常见工具以及如何有效地使用它们。 首先,让我们理解文件压缩的基本...

    哈弗曼树的文件压缩和解压实验报告C语言.docx

    《哈弗曼树在文件压缩与解压中的应用——C语言实现》 哈弗曼树,又称为最优二叉树,是一种特殊的二叉树结构,它在数据编码和压缩领域有着广泛的应用。本实验报告主要探讨了如何使用C语言实现哈弗曼树进行文件的压缩...

    文件压缩、解压测试Demo

    在IT行业中,文件压缩与解压是日常工作中常见的操作,特别是在数据传输、存储优化和软件分发等领域。本文将深入探讨文件压缩与解压的基本原理、常见算法以及MFC架构在其中的应用。 首先,让我们理解文件压缩的概念...

Global site tag (gtag.js) - Google Analytics