`
gavinju
  • 浏览: 31425 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java解压Zip文件

阅读更多

近日,在别的Java论坛上看到有人贴出的Java解压Zip的源码,据说是有问题,小弟昨日小做测试,没有问题.

现在,我贴出经过测试后的源码供大家研究学习:

package com.hand;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class Zip {

 /**
  * @param args
  */
 public static int iCompressLevel;  //压缩比  取值范围为0~9
 public static boolean bOverWrite;  //是否覆盖同名文件 取值范围为True和False
 private static ArrayList allFiles = new ArrayList();
 public static String sErrorMessage;
 public static ArrayList Ectract(String sZipPathFile, String sDestPath){
  ArrayList allFileName = new ArrayList();
  try{
   //先指定压缩档的位置和档名,建立FileInputStream对象
   FileInputStream fins = new FileInputStream(sZipPathFile);
   //将fins传入ZipInputStream中
   ZipInputStream zins = new ZipInputStream(fins);
   ZipEntry ze = null;
   byte ch[] = new byte[256];
   while((ze = zins.getNextEntry()) != null){
    File zfile = new File(sDestPath + ze.getName());
    File fpath = new File(zfile.getParentFile().getPath());
    if(ze.isDirectory()){
     if(!zfile.exists())
      zfile.mkdirs();
     zins.closeEntry();
    }else{
     if(!fpath.exists())
      fpath.mkdirs();
     FileOutputStream fouts = new FileOutputStream(zfile);
     int i;
     allFileName.add(zfile.getAbsolutePath());
     while((i = zins.read(ch)) != -1)
      fouts.write(ch,0,i);
     zins.closeEntry();
     fouts.close();
    }
   }
   fins.close();
   zins.close();
   sErrorMessage = "OK";
  }catch(Exception e){
   System.err.println("Extract error:" + e.getMessage());
   sErrorMessage = e.getMessage();
  }
  allFiles.clear();
  return allFileName;
 }
 
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Zip z = new Zip();
  ArrayList a = new ArrayList();
  a = z.Ectract("c:\\src.zip", "c:\\");
  System.out.println(a.size());
 }

}

注: 解压C盘根目录下文件src.zip到C盘根目录.

 

另:附录一将一个字符串分割为子字符串,然后将结果作为字符串数组返回的有用的Java程序.关于split()方法的使用

package com.hand.tools;

public class SplitDemo {
 
 public static String[] ss = new String[20];
 public SplitDemo(){
  String s = "The test in String start action success";
  //在每个空格字符处进行分解
  ss = s.split(" ");
 }

 /**
  * @param args
  * 将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
  * java.lang.string.split
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  SplitDemo demo = new SplitDemo();
  System.out.println("test the length="+ss.length);
  for(int i=0; i < ss.length; i++){
   System.out.println(ss[i]);
  }
  System.out.println("the last element is : "+ ss[6]);
 }

}

运行返回结果:

test the length=7
The
test
in
String
start
action
success
the last element is : success

分享到:
评论
2 楼 sawen21 2009-02-05  
程序需要改改,支持中文就不错了
1 楼 wanghongguang 2008-12-04  

写的很好.对我很我很有帮助!!! 谢谢! 

相关推荐

    java解压缩文件

    总结来说,Java解压缩文件主要依赖于`java.util.zip`包,通过`ZipInputStream`和`ZipEntry`类进行操作。开发者可以通过自定义代码或使用第三方库来实现这个功能,以满足不同场景的需求。在实际项目中,根据具体需求...

    java解压zip压缩文件

    在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对...`UnZip.java`和`UnZip2.java`文件可能是这种功能的具体实现,通过阅读它们的源代码,可以深入了解Java解压ZIP文件的各种策略和技巧。

    java解压ZIP文件

    在Java编程中,解压缩ZIP文件是一项常见的任务,尤其在处理归档文件或备份时。本文将深入探讨如何使用Java来解压ZIP文件,并通过一个具体的示例代码来展示整个过程。 #### 二、关键概念与技术栈 在进行ZIP文件的...

    Java解压缩文件,尤其对于Rar5.0版本的解压实现.zip

    沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...

    java 解压缩文件

    ### Java 解压缩文件知识点 #### 一、Java压缩与解压技术概述 在Java中,进行文件的压缩和解压通常涉及到多个类库和技术。这些技术不仅能够帮助开发者有效地管理和处理大量的数据,还能够在网络传输过程中减少带宽...

    Java解压zip文件完整代码分享

    以下是一个详细的Java解压ZIP文件的代码示例,我们将深入探讨这个过程。 首先,我们需要引入Apache Commons Compress库,可以通过Maven或Gradle将其添加到项目依赖中。如果你的项目不使用任何构建工具,你可以手动...

    JAVA解压ZIP多层目录文件(需ant.jar

    ### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....

    Java解压zip文件完整代码分享,使用java代码完成解压zip文件

    压缩包--Java解压zip文件完整代码分享,使用java代码完成解压zip文件

    JAVA 上传ZIP,RAR文件并解压

    在Java编程环境中,上传并处理ZIP和RAR压缩文件是一项常见的任务,特别是在文件传输、数据存储以及备份场景下。本文将详细讲解如何实现这个功能,包括文件上传、实时进度跟踪、指定解压路径以及解压过程。 首先,让...

    java解压缩文件支持中文

    java解压缩文件支持中文,经过测试,可执行,项目中正在应用

    java 解压缩zip文件

    在Java编程语言中,解压缩ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包和部署等场景下。本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种...

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

    3. **解压缩文件** 解压ZIP文件则需要一个`ZipInputStream`实例,它包装在一个`FileInputStream`中,指向ZIP文件。通过调用`getNextEntry`方法,你可以逐个访问ZIP文件中的每个条目,然后创建相应的文件或目录,将...

    java解压缩文件文件夹

    在Java编程语言中,处理文件压缩与解压缩是常见的任务,尤其在数据传输、存储优化或者备份场景下。本文将详细讲解如何使用Java实现文件和文件夹的压缩以及解压缩功能。 首先,Java标准库提供了`java.util.zip`包,...

    JAVA解压ZIP格式的压缩包_java解压缩_zip_

    在给定的压缩包文件中,包含了一个名为"JAVA解压ZIP格式的压缩包.docx"的文档,这可能是对解压过程的详细说明或补充信息。在实际操作中,你可以将上述代码与这个文档结合,以获得更深入的理解和实践指导。

    java 操作Zip文件(压缩、解压、加密).zip

    - **解压缩文件**:使用`unzip()`方法可以解压缩整个Zip文件,或者通过`extractFile()`或`extractFolder()`方法提取指定的文件或目录。 - **加密**:`zip4j`支持AES 128/256位加密,你可以设置密码保护Zip文件,...

    详解Java无需解压直接读取Zip文件和文件内容

    Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...

    java 中 zip压缩文件解压工具类

    虽然Ant不直接用于解压缩文件,但可以与Java代码结合使用,例如通过Ant任务来调用`CompressFileUtils`进行解压缩操作。Ant提供了一系列的任务,如`unzip`,可以直接在构建脚本中用于解压缩文件。 至于标签“文件解...

    JAVA解压ZIP文件(可解压中文)

    在Java编程环境中,处理压缩文件,特别是ZIP格式的文件,是一项常见的任务。当我们需要读取或提取ZIP文件中的内容,特别是在处理包含中文字符的文件名时,需要特别注意编码问题。下面将详细介绍如何使用Java来解压...

Global site tag (gtag.js) - Google Analytics