`
zrzdemon
  • 浏览: 24407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用java解压zip文件

    博客分类:
  • JAVA
阅读更多

    JAVA可以解压zip文件是因为ZIP文件的算法是开源的。但是RAR文件的算法确实不公开的啊。虽然我们可以用windows命令来解压RAR文件但是我发现他只能解压一次,而且比较慢,相当于在程序运行时又开始了一个进程来解压rar文件。后来我决定用ZIP文件。

   代码如下:

String filePath = this.getServlet().getServletContext()
     .getRealPath("/"); // 取得当前路径
   String path = filePath + "IEBOOK\\";
   File ff=new File(path);
   if(!ff.exists()){
    ff.mkdirs();
   }
   String[] filetype = fileone.getFileName().split("\\.");
   String truefiletype = filetype[1];  
   String temp = String.valueOf(System.currentTimeMillis());
   String fileyi = temp + "." + truefiletype;

   String zipFileName = path + fileyi;  //zip文件的位置
   String extPlace = path + temp + "\\";//将zip文件解压后的位置
//开始解压 

  try {
    ZipFile zipfile = new ZipFile(zipFileName);
    InputStream in = null;
    ZipEntry entry = null;
    File files = new File(extPlace);
    if (files.exists() == false) {
     files.mkdirs();
    }
    String inpath = extPlace;
    Enumeration ea = zipfile.getEntries();
    while (ea.hasMoreElements()) {
     entry = (ZipEntry) ea.nextElement();
     String entryName = entry.getName();
     
     if (entry.isDirectory()) {
      File file = new File(extPlace + entryName);
      file.mkdirs();
      inpath += file.getName();
     } else {
      File newfile = new File(extPlace
        + "\\"
        + entryName.substring(0, entryName
          .lastIndexOf("/") + 1));
      System.out.println("aaa:" + newfile.toString());
      if (newfile.exists()) {

      } else {
       newfile.mkdirs();
      }
      newfile = new File(extPlace + File.separator
        + entryName);
      newfile.createNewFile();    

    FileOutputStream os = new FileOutputStream(newfile);
      in = zipfile.getInputStream(entry);
      byte[] buf = new byte[1024];
      int len;
      while ((len = in.read(buf)) > 0) {
       os.write(buf, 0, len);
      }
      os.close();
      in.close();
     }
    }
    zipfile.close();

   } catch (Exception e) {
    e.printStackTrace();
   }

 

这样可以实现解压,但是发现用

 File dd=new File(zipFileName);
             dd.deleteOnExit();

将ZIP文件删除却上不掉,很奇怪???

分享到:
评论

相关推荐

    java 解压缩zip文件

    本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种广泛使用的文件归档格式,它可以将多个文件和目录组合成一个单一的可压缩文件,方便存储和传输。在Java中...

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

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

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

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

    java解压zip压缩文件

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

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

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

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

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

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

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

    使用Java向服务器上传文件压缩包并实现解压缩

    在这个场景中,我们关注的是如何使用Java来实现文件压缩包的上传以及在服务器上的解压缩。Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,...

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

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

    使用java解压缩zip文件

    在Java编程环境中,解压ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包或系统...以上就是使用Java解压ZIP文件的基本步骤和关键知识点。通过理解并应用这些概念,你可以轻松地处理任何ZIP文件的解压缩任务。

    JAVA解压缩ZIP或RAR格式的文件

    在Java编程环境中,解压缩ZIP或RAR格式的文件是一项常见的任务,这主要涉及到I/O流、文件操作以及压缩和解压缩库的使用。本篇将深入讲解如何在Java中实现这个功能,同时会介绍一些相关的工具和源码。 首先,对于ZIP...

    Java实现的带密码压缩与解压zip文件源码

    在Java编程环境中,处理压缩和解压缩文件是一项常见的任务,特别是在数据存储、文件传输和备份等领域。本项目专注于使用Java实现带密码保护的ZIP文件的压缩和解压功能。这是一项安全措施,允许用户对敏感文件进行...

    JAVA 上传ZIP,RAR文件并解压

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

    基于Java向zip压缩包追加文件

    当需要向已存在的ZIP文件追加文件时,首先使用`ZipUtil`解压缩ZIP文件到一个临时目录,然后在该目录中添加新的文件,最后重新压缩整个目录并覆盖原有的ZIP文件。以下是大致的步骤: - 使用`ZipUtil`的`unzip`方法...

    java获取压缩文件的名称并解压

    本文将深入探讨如何使用Java来获取ZIP文件的名称以及如何高效地解压缩这些文件,特别是通过多线程来提高性能。 首先,我们需要引入Java的内置库`java.util.zip`,它提供了处理ZIP文件的类和接口。主要使用的类有`...

    java解压zip格式文件

    在Java编程环境中,处理压缩文件是一项常见的任务,特别是在数据传输、存储优化或应用程序资源管理时。Zip格式是一种广泛使用的文件压缩标准,它允许我们将多个文件和目录打包成一个单一的可压缩文件。本文将深入...

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

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

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

    4. **源代码实现**:实践中提供的源代码展示了如何使用Java API来实现文件和目录的压缩与解压缩。这可能包括读取文件,创建压缩流,写入数据到压缩流,以及从压缩流中读取和写入文件等步骤。 5. **文件操作**:在...

    java自动解压缩文件

    Java自动解压缩文件是编程领域中的一个重要话题,尤其是在服务器端应用中,经常需要处理上传的压缩文件并进行解压操作。Java提供了丰富的API来支持这一功能,主要涉及到`java.util.zip`包中的类,如`ZipInputStream`...

    java操作压缩文件和解压文件实例代码(经测试)

    3. **解压缩文件**:与压缩相反,`unzipFiles()`方法可能利用`ZipInputStream`来读取ZIP文件并解压到指定目录。通过循环遍历输入流中的每个`ZipEntry`,创建对应的目标文件,然后将其内容复制出来。 4. **路径和...

Global site tag (gtag.js) - Google Analytics