`
long5534
  • 浏览: 53028 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

java实现文件压缩与解压缩(支持中文)

阅读更多
java 代码
  1. import java.io.*;   
  2. import java.util.*;   
  3. import org.apache.tools.zip.*;   
  4.   
  5.   
  6. /**  
  7.          * added by czl  
  8.          * 2007-06-05  
  9.          * 压缩文件,支持中文路径及中文文件名  
  10.          * compressFileName(指定压缩后的文件及路径):path+"/tempfile/test.zip"  
  11.          * args(所要压缩的文件):String args[]={path+"/tempfile/download_123.txt",path+"/tempfile/download_456.txt",path+"/tempfile/download_789.txt"}  
  12.          */  
  13.            
  14.         public static boolean createZip(String compressFileName,String args[]){   
  15.             boolean flag = false;   
  16.             try{           
  17.                 byte b[] = new byte[512];      
  18.                 ZipOutputStream zout = new ZipOutputStream(new FileOutputStream(compressFileName));      
  19.                 for(int i = 0; i < args.length; i++){      
  20.                    InputStream in = new FileInputStream(args[i]);    
  21.                    File file=new File(args[i]);   
  22.                    String filename = file.getName();//取得文件名   
  23. //                 ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar,'/')); //压缩后带路径    
  24.                    ZipEntry e = new ZipEntry(filename);         //压缩后不带路径   
  25.                    zout.putNextEntry(e);      
  26.                    int len=0;   
  27.                    while((len=in.read(b)) != -1){   
  28.                       zout.write(b,0,len);   
  29.                    }   
  30.                    zout.closeEntry();               
  31.                  }   
  32.                  zout.close();   
  33.                  flag = true;   
  34.             }catch(Exception e){   
  35.                 e.printStackTrace();   
  36.             }   
  37.             return flag;   
  38.         }   
  39.         /**  
  40.          * added by czl   
  41.          * 2007-06-05  
  42.          * 解zip压缩文件,支持中文路径及中文文件名  
  43.          * @param zipFile  
  44.          * @param outFilePath  
  45.          * @param mode  
  46.          */  
  47.         public static boolean unZip(String zipFile,String outFilePath,int mode){   
  48.             boolean flag = false;   
  49.             try{   
  50.               File file = new File(zipFile);   
  51.               String fileName = file.getName();   
  52.               if(mode == 1)   
  53.               {   
  54.                   outFilePath += File.separator;  //文件当前路径下   
  55.               }else{   
  56.                   outFilePath += File.separator+fileName.substring(0,fileName.length()-4)+File.separator;   
  57.               }   
  58.               File tmpFileDir = new File(outFilePath);   
  59.               tmpFileDir.mkdirs();   
  60.                  
  61.               ZipFile zf = new ZipFile(zipFile);   
  62.               FileOutputStream fos;   
  63.                  
  64.               byte[] buf = new byte[1024];   
  65.               for(Enumeration em = zf.getEntries(); em.hasMoreElements();){   
  66.                    ZipEntry ze = (ZipEntry) em.nextElement();   
  67.                    if(ze.isDirectory())   
  68.                    {   
  69.                        continue;   
  70.                    }   
  71.                    DataInputStream dis = new DataInputStream(zf.getInputStream(ze) );   
  72.                    String currentFileName = ze.getName();   
  73.                    int dex = currentFileName.lastIndexOf('/');   
  74.                    String currentoutFilePath = outFilePath;   
  75.                    if(dex > 0)   
  76.                    {   
  77.                         currentoutFilePath += currentFileName.substring(0,dex)+File.separator;   
  78.                         File currentFileDir = new File(currentoutFilePath);   
  79.                         currentFileDir.mkdirs();                       
  80.                    }                  
  81.                    fos = new FileOutputStream(outFilePath + ze.getName ( ));   
  82.                    int readLen = 0;   
  83.                    while((readLen = dis.read(buf,0,1024)) > 0 )   
  84.                    {   
  85.                     fos.write(buf , 0 ,readLen);   
  86.                    }   
  87.                    dis.close();   
  88.                    fos.close();                   
  89.                }   
  90.                flag = true;   
  91.              }catch(Exception e){   
  92.                  e.printStackTrace();   
  93.              }   
  94.              return flag;   
  95.         }   
分享到:
评论
3 楼 zuomingmin 2010-04-27  
  
2 楼 lyp0206 2008-06-06  
1 楼 laserdance 2008-01-28  
不错,赞一个 

相关推荐

    JAVA文件压缩与解压缩实践(源代码+论文)

    综上所述,这个实践项目涵盖了Java文件压缩与解压缩的核心技术,是学习和理解Java I/O和压缩库的宝贵资源。通过阅读源代码和论文,开发者不仅可以学习如何在Java中进行文件压缩,还能了解到如何将这些技术应用于实际...

    (Java毕业设计)JAVA文件压缩与解压缩实践(源代码+).rar

    (Java毕业设计)JAVA文件压缩与解压缩实践(Java毕业设计)JAVA文件压缩与解压缩实践(Java毕业设计)JAVA文件压缩与解压缩实践(Java毕业设计)JAVA文件压缩与解压缩实践(Java毕业设计)JAVA文件压缩与解压缩实践(Java毕业...

    java实现rar压缩与解压缩

    在Java编程语言中,实现RAR压缩与解压缩是一项常见的任务,尤其在处理大量数据或打包文件以便于传输时。本文将深入探讨如何使用Java来实现这个功能,主要关注`FileUtil.java`文件中的代码实现。 首先,Java本身并不...

    JAVA文件压缩与解压缩实践(源代码).zip

    JAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩...

    JAVA文件压缩与解压缩实践(源代码+论文).rar

    JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件...

    JAVA文件压缩与解压缩实践(源代码+LW).zip

    JAVA文件压缩与解压缩实践(源代码+LW)JAVA文件压缩与解压缩实践(源代码+LW)JAVA文件压缩与解压缩实践(源代码+LW)JAVA文件压缩与解压缩实践(源代码+LW)JAVA文件压缩与解压缩实践(源代码+LW)JAVA文件压缩与解压缩实践...

    JAVA文件压缩与解压缩实践(源代码+论文).zip

    JAVA文件压缩与解压缩实践(源代码+论文)JAVA文件压缩与解压缩实践(源代码+论文)JAVA文件压缩与解压缩实践(源代码+论文)JAVA文件压缩与解压缩实践(源代码+论文)JAVA文件压缩与解压缩实践(源代码+论文)JAVA文件压缩与...

    java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文).zip

    java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文).zip java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文).zip java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文)....

    JAVA文件压缩与解压缩实践的实现.rar

    Java文件压缩与解压缩实践是指利用Java编程语言实现对文件或文件夹进行压缩和解压缩操作。以下是该实践的描述: 技术概述: Java文件压缩与解压缩是指将一个或多个文件或文件夹打包成一个压缩文件,或者将压缩文件...

    基于JAVA的文件压缩与解压缩实践(源代码+论文)

    论文部分则详细阐述了基于Java的文件压缩与解压缩实践的设计思路、实现过程以及所采用的技术。论文首先介绍了项目的背景和意义,分析了文件压缩与解压缩的重要性以及Java在这一领域的应用优势。接着,论文详细描述了...

    (JAVA)利用Java实现zip压缩.解压缩.rar_decompress rar java_zip 压缩

    在Java编程语言中,我们...总的来说,Java中的ZIP压缩和解压缩功能强大且易于使用,是开发人员处理文件压缩需求的首选工具。通过熟练掌握`java.util.zip`包,你可以轻松地在Java应用程序中实现文件的压缩和解压缩功能。

    java zip文件压缩与解压缩

    Java中的zip文件压缩和解压缩是程序开发中常见的任务,特别是在处理大量数据或者打包资源文件时。Apache Commons Compress库是Java中一个强大的工具,它提供了对多种压缩格式的支持,包括zip,而且能够处理中文...

    JAVA文件压缩与解压缩实践(源代码+lw).rar

    JAVA文件压缩与解压缩实践(源代码+lw).rarJAVA文件压缩与解压缩实践(源代码+lw).rarJAVA文件压缩与解压缩实践(源代码+lw).rarJAVA文件压缩与解压缩实践(源代码+lw).rarJAVA文件压缩与解压缩实践(源代码+lw).rarJAVA...

    JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码.zip

    在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API...

Global site tag (gtag.js) - Google Analytics