首页 > 编程语言 >java压缩流

java压缩流

时间:2023-03-07 19:35:34浏览次数:41  
标签:src java zip 压缩 文件夹 File entry new

利用压缩流解压文件夹

@Test
public void zipInputStreamDemo()throws Exception{
        //利用压缩流解压文件夹,注意java只识别zip
        File src = new File("D:/a.zip");
        File dist = new File("D:/");
        unzip(src,dist);
    }
 public static void unzip(File src,File dest)throws Exception{
        //创建一个压缩输入流
        ZipInputStream zip = new ZipInputStream(new FileInputStream(src));
        ZipEntry entry;
        //利用循环获取每一个ZipEntry对象[这个对象能获取压缩包下面所有的文件夹及文件]
        while ((entry=zip.getNextEntry())!=null){
            //判断这个ZipEntry是否是一个文件夹,如果是则创建这个文件夹,如果不是则将这个文件解压出来。
            if(entry.isDirectory()){
                File file = new File(dest,entry.toString());
                file.mkdir();
            }
            else
            {
               BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dest,entry.toString())));
               byte[]  bytes = new byte[1024];
               int len = 0;
               while ((len= zip.read(bytes))!=-1){
                   bos.write(bytes,0,len);
               }
               bos.flush();
               bos.close();
               zip.closeEntry();
            }
        }
        zip.close();
    }

标签:src,java,zip,压缩,文件夹,File,entry,new
From: https://www.cnblogs.com/-xyk/p/17189301.html

相关文章

  • 【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
    【选择排序算法详解】Java/Go/Python/JS/C不同语言实现 说明选择排序(SelectionSort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个......
  • TypeScript 与 JavaScript:你应该知道的区别
    作者:京东零售杨冰译自Radix网站的文章,原文链接:https://radixweb.com/blog/typescript-vs-javascript,原文作者:NiharRaval正在寻找经验丰富的JavaScript开发团队来将您的......
  • 在 Java 中解码 Base64 数据
    我有一个Base64编码的图像。在Java中解码它的最佳方法是什么?希望只使用SunJava6中包含的库。解答http://www.stackoverflow.ink/posts/zai-java-zhong-......
  • java -D的一些学习和使用
    背景java开发的程序有很多进行配置的方式可以通过yaml文件或者是xml文件也可以通过环境变量的方式.1.容器的话可以使用-e或者是env进行注入2.K8S的话可以通过co......
  • 推荐 7 个有用的 JavaScript 库,也许你会用的上
    推荐7个有用的JavaScript库,也许你会用的上原创2023-02-1016:52·前端达人使用这7个库,加速你的项目开发 当我们可以通过使用库轻松实现相同的结果时,为什么还要......
  • JavaSE——接口
    概述我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接......
  • 如何使用“pv”命令监控(复制/备份/压缩)数据的进度
    概述在Linux系统上进行备份和复制/移动大文件时,您可能希望监视正在进行的进度。许多终端工具没有允许您在管道中运行命令时查看进度信息的功能。在本文中,我们将了解一个......
  • java微基准测试JMH引入报错RuntimeException: ERROR: Unable to find the resource: /
    项目引入JMH进行性能测试,完整demo业务类:packagecom.simon.benchmark;/***@Author:huzhiyang*@Date:2023/3/717:03*@Desc:*/publicclassBizService{......
  • javax 和hibernate 的NotBlank
    问题:hibernate版本在5的时候,如果你用了importjavax.validation.constraints.NotBlank;在校验的时会报错HV000030:Novalidatorcouldbefoundforconstraint'javax.......
  • java 数组 -创建和添加 (增删改查)25
     创建: packagecom.demo.Array;importjava.util.ArrayList;publicclassday01{/*Arraylist集合的使用细节:创建String,Stringbuilder,A......