`
yefei
  • 浏览: 124240 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java zip递归压缩解压代码

阅读更多

ZIP压缩类

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class ZipCompress ...{

    
/** *//**
     * 
@param args
     
*/

    
public static void main(String[] args) throws IOException ...{
        compress(
"D:/tomcat-5.5.20","d:/test/testZip.zip");
    }

    
/** *//**
     * 递归压缩文件
     * 
@param source 源路径,可以是文件,也可以目录
     * 
@param destinct  目标路径,压缩文件名
     * 
@throws IOException
     
*/

    
private static void compress(String source,String destinct) throws IOException ...{
        List fileList
=loadFilename(new File(source));
        ZipOutputStream zos
=new ZipOutputStream(new FileOutputStream(new File(destinct)));
        
        
byte[] buffere=new byte[8192];
        
int length;
        BufferedInputStream bis;
        
        
for(int i=0;i<fileList.size();i++...{
            File file
=(File) fileList.get(i);
            zos.putNextEntry(
new ZipEntry(getEntryName(source,file)));
            bis
=new BufferedInputStream(new FileInputStream(file));
            
            
while(true...{
                length
=bis.read(buffere);
                
if(length==-1break;
                zos.write(buffere,
0,length);
            }

            bis.close();
            zos.closeEntry();
        }

        zos.close();
    }

    
/** *//**
     * 递归获得该文件下所有文件名(不包括目录名)
     * 
@param file
     * 
@return
     
*/

    
private static List loadFilename(File file) ...{
        List filenameList
=new ArrayList();
        
if(file.isFile()) ...{
            filenameList.add(file);
        }

        
if(file.isDirectory()) ...{
            
for(File f:file.listFiles()) ...{
                filenameList.addAll(loadFilename(f));
            }

        }

        
return filenameList;
    }

    
/** *//**
     * 获得zip entry 字符串
     * 
@param base
     * 
@param file
     * 
@return
     
*/

    
private static String getEntryName(String base,File file) ...{
        File baseFile
=new File(base);
        String filename
=file.getPath();
        
//int index=filename.lastIndexOf(baseFile.getName());
        if(baseFile.getParentFile().getParentFile()==null)
            
return filename.substring(baseFile.getParent().length());
        
return filename.substring(baseFile.getParent().length()+1);
    }

}

 ZIP解压类

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ZipDecompression ...{

    
/** *//**
     * 
@param args
     * 
@throws IOException 
     
*/

    
public static void main(String[] args) throws IOException ...{
        decompression(
"d:/test/testZip.zip","d:/test/un");
    }

    
/** *//**
     * 解压ZIP文件
     * 
@param zipFile  要解压的ZIP文件路径
     * 
@param destination  解压到哪里
     * 
@throws IOException
     
*/

    
public static void decompression(String zipFile,String destination) throws IOException ...{
        ZipFile zip
=new ZipFile(zipFile);
        Enumeration en
=zip.entries();
        ZipEntry entry
=null;
        
byte[] buffer=new byte[8192];
        
int length=-1;
        InputStream input
=null;
        BufferedOutputStream bos
=null;
        File file
=null;
        
        
while(en.hasMoreElements()) ...{
            entry
=(ZipEntry)en.nextElement();
            
if(entry.isDirectory()) ...{
                System.out.println(
"directory");
                
continue;
            }

            
            input
=zip.getInputStream(entry);
            file
=new File(destination,entry.getName());
            
if(!file.getParentFile().exists()) ...{
                file.getParentFile().mkdirs();
            }

            bos
=new BufferedOutputStream(new FileOutputStream(file));
            
            
while(true...{
                length
=input.read(buffer);
                
if(length==-1break;
                bos.write(buffer,
0,length);
            }

            bos.close();
            input.close();
        }

        zip.close();
    }

}
分享到:
评论
1 楼 adong12300 2018-05-23  
       ,找了好几个这种文件压缩的,就这个没啥问题

相关推荐

    java版zip压缩解压代码

    `java版zip压缩解压代码`提供了在命令行环境中实现这一功能的程序。这个程序主要利用了Java的内置库,尤其是`java.util.zip`包中的类,如`ZipOutputStream`和`ZipInputStream`,来实现对文件和文件夹的ZIP压缩与解压...

    使用java API实现zip递归压缩和解压文件夹

    在本文中,我们将通过实例代码详细介绍如何使用 Java API 实现 ZIP 递归压缩和解压文件夹。 一、概述 在实际应用中,我们经常需要将文件或文件夹压缩成 ZIP 文件,以便于传输或存储。同时,我们也需要能够解压 ZIP...

    Java zip 压缩/解压源码

    9. **递归压缩目录**: 如果要压缩的是一个目录,需要递归地处理其中的所有文件和子目录。对于每个文件,创建一个`ZipEntry`并写入;对于每个子目录,创建一个没有数据的`ZipEntry`(表示目录条目)。 10. **代码...

    java解压zip压缩文件

    `UnZip.java`和`UnZip2.java`可能包含了不同的解压实现,例如,`UnZip2.java`可能会包含更高效或更复杂的解压逻辑,比如递归处理子目录、处理大型ZIP文件的优化、错误处理或进度指示等。这些文件可能使用了循环、...

    java zip 压缩解压例子

    Java的Zip压缩和解压是Java IO和Java Archive(JAR)库中的一部分,用于处理.zip格式的文件。在Java中,我们可以使用`java.util.zip`包中的类,如`ZipOutputStream`和`ZipInputStream`来实现文件或目录的压缩与解压...

    java zip解压缩

    Java Zip压缩和解压缩是Java开发中常见的文件处理任务,主要涉及到`java.util.zip`包中的类和方法。本文将详细讲解如何使用Java进行Zip文件的压缩与解压缩操作,并结合给定的标签"源码"和"工具"来探讨实际应用场景。...

    利用Java实现zip压缩解压缩

    本文将详细介绍如何使用 Java 实现 ZIP 文件的压缩和解压缩功能,并通过具体的代码示例来展示其实现过程。 #### Java 中 ZIP 文件处理的核心类 Java 提供了两个核心类来处理 ZIP 文件:`ZipOutputStream` 和 `...

    java解压缩zip代码与用到的jar包

    标题提到的"java解压缩zip代码与用到的jar包"主要涉及了Java对ZIP文件的操作,以及一个名为`ant.jar`的第三方库。`ant.jar`是Apache Ant的核心库,它是一个基于Java的任务执行工具,广泛用于构建项目,其中包含了...

    实现java文件压缩与解压

    这段代码实现了对单个文件或整个目录的递归压缩。其中,`zipFile`方法负责具体文件的压缩操作,而`zip`方法则是整个压缩过程的入口。 #### 四、总结 本文详细介绍了如何使用Java实现文件的压缩与解压功能。通过对`...

    JAVA实现目录及文件的zip压缩和解压

    在Java编程环境中,对目录和文件进行ZIP压缩与解压是一项常见的操作,特别是在处理大量数据或者需要进行文件传输时。本文将深入探讨如何使用Java来实现这一功能。 首先,我们需要了解ZIP文件格式,它是一种广泛使用...

    Java压缩和解压缩zip文件

    在上面的代码中,`zipFiles` 方法接收一个源目录和目标ZIP文件路径,然后使用 `addFolderToZip` 递归地将所有文件和子目录添加到ZIP流中。`ZipEntry` 对象用于描述每个压缩项,并设置其在ZIP文件中的路径。 对于解...

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

    1. **Java压缩库**:Java标准库提供了`java.util.zip`包,它包含了多种压缩和解压缩的类,如`ZipOutputStream`、`ZipInputStream`、`GZIPOutputStream`和`GZIPInputStream`,用于处理ZIP和GZIP格式的文件。...

    递归解压文件夹下的所有压缩文件(源代码)

    以上代码片段展示了如何在Python和Java中使用递归解压文件夹下的所有指定类型的压缩文件。当然,实际应用中还需要考虑错误处理、文件权限等问题,以及可能需要的用户交互。递归解压不仅可以提高效率,而且可以灵活地...

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

    在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...

    java ftp上传 下载 文件压缩解压

    这篇博客“java ftp上传 下载 文件压缩解压”很可能是关于如何使用Java实现FTP文件上传、下载以及文件的压缩与解压功能。下面我们将深入探讨这些知识点。 首先,FTP上传和下载是Java中常见的任务,通常通过`java...

    java.util.zip 解压缩文件,ZIP格式压缩文件.rar

    在Java编程语言中,`java.util.zip` 是一个非常重要的包,它提供了处理各种压缩格式(如ZIP和GZ)的工具。在这个场景中,我们将深入探讨如何使用这个包来解压缩和压缩ZIP格式的文件。`java.util.zip` 包包含几个关键...

    java 解压缩zip文件

    该程序会递归地解压ZIP文件中的所有文件和目录。 需要注意的是,这个示例仅处理了ZIP文件的基本解压功能,实际应用中可能需要考虑更多细节,比如文件权限、保留原始文件属性、处理加密的ZIP文件等。另外,为了提高...

    JAVA_解压ZIP.txt

    ### JAVA_解压ZIP知识点详解 #### 一、概述 在Java编程中,处理压缩文件是一项常见的需求。本文档详细介绍了如何使用Java语言中的库来解压ZIP格式的文件。此文档不仅提供了一个完整的示例代码,还包含了必要的理论...

    Java代码 可以压缩文件夹到指定目录和指定名称,将文件或者文件夹中的文件转成base64格式

    在Java编程语言中,压缩文件夹到指定目录和指定名称是一项常见的任务,这通常涉及到对文件系统的操作和使用压缩库。Java提供了多种方法来实现这一功能,比如使用内置的`java.util.zip`包或者第三方库如Apache ...

    Java zip压缩包查看程序源码.rar

    工具类可能会提供方便的方法,如将文件或目录结构批量压缩成ZIP,或者将ZIP解压到指定目录。 以下是一个简单的示例,展示了如何使用Java内置的API创建和操作ZIP文件: ```java import java.io.*; import java.util...

Global site tag (gtag.js) - Google Analytics