`
sgm881218
  • 浏览: 58198 次
社区版块
存档分类
最新评论

java实用工具(zip)

    博客分类:
  • java
阅读更多
解压:
package com.util.zip;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
 
public class Zip { 
 
  //把路径中的zip里的文件解压到相同路径下
    public static void unZipFile(String filePath) { 
    try{ 
    String savePath=filePath.substring(0, filePath.lastIndexOf("/"));
        int BUFFER = 1024; 
        BufferedOutputStream dest = null; 
        FileInputStream fis = new FileInputStream(filePath); 
        ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis)); 
        ZipEntry entry; 
        while ((entry = zis.getNextEntry()) != null) { 
            System.out.println("Extracting: " + entry); 
            int count; 
            byte data[] = new byte[1024]; 
            FileOutputStream fos = new  FileOutputStream(savePath+entry.getName()); 
            dest = new BufferedOutputStream(fos, BUFFER); 
            while ((count = zis.read(data, 0, BUFFER)) != -1) { 
                dest.write(data, 0, count); 
            } 
            dest.flush(); 
            dest.close(); 
        } 
        zis.close(); 
    } catch (Exception e) { 
        e.printStackTrace(); 
    } 
    } 
    public static void main(String[] args) { 
        unZipFile("D:/Temp.zip"); 
    } 


加压:注意,所加压的文件夹不能为空!!
package com.zip;

import java.io.*; 
import java.util.zip.*; 
 
public class Zip { 
    static final int BUFFER = 2048;  
    static boolean flag = false; 
     
    public static void main(String args[])throws IOException{ 
       
        ZipSubdirectory("D:/Temp"); 
    } 
   
   
    //ZipSubdirectory函数将一个指定目录(包括它子目录)压缩成一个同名压缩文件(这里称为"ORIGIN") 
    public static File ZipSubdirectory(String folderPath)throws IOException{ 
    File file= new File(folderPath); 
    String savePath=folderPath.substring(0, folderPath.lastIndexOf("/"));
   
        //创建缓冲输入流BufferedInputStream  
        BufferedInputStream origin = null; 
        //创建ZipOutputStream对象,将向它传递希望写入文件的输出流 
        File zipFile=new File(savePath+file.getName()+".zip"); 
        FileOutputStream fos=new FileOutputStream(zipFile); 
        ZipOutputStream out=new ZipOutputStream(new BufferedOutputStream(fos,BUFFER)); 
        //dirContents[]获取当前目录(myDir)所有文件对象(包括子目录名) 
        File dirContents[]=file.listFiles(); 
        //创建临时文件tempFile,使用后删除 
        File tempFile=null;  
        try{ 
            //处理当前目录所有文件对象,包括子目录 
            for(int i=0;i < dirContents.length; i++){ 
            //使用递归方法将当前目录的子目录转成一个ZIP文件,并作为一个ENTRY加进"ORIGIN"  
            /*if(dirContents[i].isDirectory()){ 
            File f= new File(folderPath);
                tempFile = ZipSubdirectory(dirContents[i]); 
                flag=true; 
        }  */
        //如果当前文件不是子目录 
      //  else { 
            tempFile=dirContents[i]; 
            //flag标记tempFile是否由子目录压缩成的ZIP文件 
            flag = false; 
       // } 
        System.out.println("Compress file: "+tempFile.getName()); 
        FileInputStream fis = new FileInputStream(tempFile); 
        origin = new BufferedInputStream(fis,BUFFER); 
        //为被读取的文件创建压缩条目 
        ZipEntry entry = new ZipEntry(tempFile.getName()); 
        byte data[]= new byte[BUFFER]; 
        int count; 
        //在向ZIP输出流写入数据之前,必须首先使用out.putNextEntry(entry); 方法安置压缩条目对象  
        out.putNextEntry(entry); 
        //向ZIP 文件写入数据  
        while((count=origin.read(data,0,BUFFER))!=-1){ 
            out.write(data,0,count); 
        } 
        //tempFile是临时生成的ZIP文件,删除它 
        if(flag==true){ 
            flag = tempFile.delete(); 
            System.out.println("Delete file:"+tempFile.getName()+flag);  
        }  
        //关闭输入流  
        origin.close();  
        } 
        out.close(); 
        } catch(Exception e){ 
            System.out.println(e); 
        } 
        //递归返回  
        return zipFile;  
    } 
分享到:
评论

相关推荐

    java开发实用工具

    Java开发实用工具集合是一系列对Java开发者至关重要的资源,这些工具可以帮助提高开发效率,简化工作流程。在这个压缩包中,包含了各种常用的开发jar包、开发工具以及数据库和服务器管理工具,旨在为Java开发者提供...

    Java常用工具类.zip

    "Java常用工具类.zip"这个压缩包显然包含了一系列与Java开发相关的实用工具类,这些类可以帮助开发者更高效地处理各种常见任务。以下将对其中涉及的知识点进行详细说明: 1. **字符串工具类**:在Java中,`java....

    javajdk.zip

    总的来说,"javajdk.zip"是一个非常实用的资源,涵盖了Java开发的两个重要领域。无论是开发大型企业级应用还是针对移动设备的小型应用,这个压缩包都能提供必要的工具和支持。只要你按照步骤正确安装和配置,你就能...

    java zip rar(区分有无密码的RAR文件) gz ftp工具类

    总结起来,这个项目提供了Java环境下的压缩和解压缩功能,包括ZIP、RAR(带密码)和GZ格式,以及FTP文件传输的实用工具类。开发者可以轻松地集成这些功能到他们的项目中,提高文件处理的便捷性。

    Windows的java.zip工具

    Java.zip工具是Windows环境下用于处理.zip格式压缩文件的实用程序,它是Java开发工具包(Java Development Kit, JDK)的一部分。这个工具集包含了多种命令行工具,可以帮助开发者进行Java应用程序的打包、解压以及...

    java反编译工具.zip

    这个压缩包“java反编译工具.zip”包含了名为"jd-gui.exe"的文件,这是一个流行且实用的Java反编译器。 JD-GUI是一款图形用户界面工具,它能够快速查看Java类文件的源代码,即使原始源代码不可用。以下是对JD-GUI...

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

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

    Java压缩解压ZIP之Zip4j

    Java中的压缩和解压操作是常见的文件处理任务,Zip4j是一个非常实用的Java库,专为处理ZIP文件而设计。这个库提供了丰富的API,使得开发者可以方便地创建、读取、更新和解压ZIP文件。这篇博客文章“Java压缩解压ZIP...

    Java常用工具类大全,工作5年精心整理.zip

    "Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...

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

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

    java实用工具包大众型XML处理.zip

    Java实用工具包大众型XML处理主要关注的是在Java编程环境中如何高效、便捷地处理XML文档。XML(Extensible Markup Language)是一种广泛用于数据交换和存储的标记语言,它具有良好的可读性和结构化特性,因此在Java...

    C# to Java 代码转换工具.zip

    "C# to Java 代码转换工具"是一个专门解决这类问题的实用工具,它能够帮助开发者快速、高效地将C#源代码转化为Java源代码,便于在Java平台上运行或进行进一步的开发。 C#是Microsoft公司推出的一种面向对象的编程...

    java开发常用工具类.zip

    "java开发常用工具类.zip" 包含了一系列这样的工具类,这些类可以帮助开发者节省时间,提高代码的可读性和可维护性。下面将详细讨论这个压缩包中可能包含的一些关键工具类和相关知识点。 1. **日期操作工具类**: ...

    解密Java代码精华 - Java反编译工具.zip

    Java反编译工具.zip是一款强大实用的工具,可帮助您快速分析和理解Java源代码。 1. 支持对Java字节码进行反编译; 2. 提供直观的代码查看界面; 3. 可以导出反编译后的源代码文件等。 适用于开发者调试、学习Java源...

    Java实用教程例题代码.zip

    本压缩包“Java实用教程例题代码.zip”包含了一整套全面的Java教程例题代码,旨在帮助学习者深入理解和掌握Java编程的核心概念。 首先,让我们了解一下Java的基础知识。Java是一种面向对象的语言,它的设计目标是...

    java辅助工具.zip

    Java辅助工具.zip是一个包含多个与Java开发相关的实用工具的压缩包。这个集合涵盖了版本控制、应用服务器和构建工具等核心组件,对Java开发者来说是非常有用的。让我们逐一了解这些工具: 1. **Git-2.22.0-64-bit....

    Java环境变量一键配置工具.zip

    Java环境变量一键配置工具是一款专为Java开发人员设计的实用工具,旨在简化Java开发环境的配置过程。在传统的Java开发环境中,配置Java环境变量(如JAVA_HOME、PATH和CLASSPATH)通常需要手动编辑系统环境变量,这是...

    java 环境.zip

    标题“java环境.zip”暗示了这个压缩包包含的是与Java开发环境相关的文件,特别是针对Windows 64位系统的。"jdk1.7 64位 官方 jdk1.7版本"的标签进一步确认了这一点,意味着这是一个官方发布的、适用于64位操作系统...

    非常好的用java进行ZIP格式的压缩包

    Java中的ZIP压缩技术是开发人员常用的一种数据归档和传输工具。ZIP格式是一种广泛接受的文件打包和压缩标准,它允许我们将多个文件合并到一个单一的压缩文件中,以节省存储空间和加快传输速度。本项目是使用Java编程...

Global site tag (gtag.js) - Google Analytics