JAVA压缩文件之-ZipOutputStream

使用 Ansys Q3D 进行电容提取 精确的电容提取在高速和 RF 设计中至关重要。在本博客中,我们演示了如何使用Ansys Q3D Extractor来计算电容值,从基本的平行板电容器开始,然后转到MEMS芯片的切口,以检查焊盘和RF线对整体电容的影响。在下面的比较中,我们使用 Q3D 从 MEMS 芯片切口中提取两种配置的电容矩阵:一种仅带有焊盘,另一种带有连接到 RF 线路的焊盘。这种比较表明,焊盘是总电容的主要贡献者,而 RF 线路则略有增加。按照上述工作流程,提取焊盘的电容,得到的电容矩阵如下所示。,选择一个已识别的网络,然后单击。 阅读详情
package com.newio;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.*;


/*需求分析:本节需要java三个压缩技术之--ZipOutputStream
 * public ZipOutputStream(OutputStream out):创建新的zip输出流
 * */
class ZipTool{

    /**
     * 1.压缩一个文件:
     * @author ManagementAndJava
     * @param fileName:被压缩的文件名
     * @param zipFileName:压缩完成的文件名
     * @throws IOException
     * 
     */
    public static void compressFile(String fileName,String zipFileName) throws IOException{
        //1.建立要被压缩的文件对象;
        File file = new File(fileName);
        //2.建立输出的压缩文件对象
        File zipFile = new File(zipFileName);
        //3.对压缩文件输入流进行封装
        ZipOutputStream zos = new ZipOutputStream(new CheckedOutputStream(
                new FileOutputStream(zipFile),new Adler32()));
        BufferedOutputStream bos = new BufferedOutputStream(zos);
        //4.设置压缩文件中的每个条目
        zos.putNextEntry(new ZipEntry(file.getName()));
        //5.对被压缩的文件输出流进行封装
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
        //6.从输出流读出数据写入输入流中
        int len;
        byte[] bytes = new byte[1024];
        while((len = bis.read(bytes))!=-1){
            bos.write(bytes, 0, len);
            bos.flush();
        }
        //7.关闭条目和流
        zos.closeEntry();
        bis.close();
        zos.close();
    }

    /**
     * 2.压缩一个文件夹:
     * @author ManagementAndJava
     * @param fileName:被压缩的文件名
     * @param zipFileName:压缩完成的文件名
     * @throws IOException
     * 
     */
    public static void compressFiles(String fileName,String zipFileName) throws IOException{
        //1.建立被压缩文件对象
        File file = new File(fileName);
        //2.建立输出的压缩文件对象
        File zipFile = new File(zipFileName);
        //3.对压缩文件输入流进行封装
        ZipOutputStream zos = new ZipOutputStream(new CheckedOutputStream(
                    new FileOutputStream(zipFile),new Adler32()));
        BufferedOutputStream bos = new BufferedOutputStream(zos);

        if(file.isDirectory()){
            int len;
            byte[] bytes = new byte[1024];
            BufferedInputStream bis ;
            File[] files = file.listFiles();
            for(int i=0;i<files.length;i++){
                //4.对被压缩的文件输出流进行封装
                bis = new BufferedInputStream(new FileInputStream(files[i]));
                //5.建立压缩文件中的条目
                zos.putNextEntry(new ZipEntry(files[i].getName()));
                //6.从输出流读出数据写入输入流中
                while((len = bis.read(bytes))!=-1){
                    bos.write(bytes,0,len);
                    bos.flush();
                }
                bis.close();
            }
            zos.closeEntry();
        }
        bos.close();
    }

    /**
     * 3.压缩一个目录:其中可以含有多个文件和文件夹;
     * @author ManagementAndJava
     * @param fileName:被压缩的文件名
     * @param zipFileName:压缩完成的文件名
     * @throws IOException
     * 
     */
    public static void compressDir(String fileName,String zipFileName) throws IOException{
        //1.建立被压缩目录对象
        File inFile = new File(fileName);
        //2.建立输入的压缩文件对象
        File zipFile = new File(zipFileName);
        //3.对压缩问价输入流进行封装
        ZipOutputStream zos = new ZipOutputStream(
                new CheckedOutputStream(
                        new FileOutputStream(zipFile),new Adler32()));
        BufferedOutputStream bos = new BufferedOutputStream(zos);

        //定义一个方法内部来来拿到所有的文件名;
        class ListDir{
            private  ArrayList<String> list = new ArrayList<String>();
            //递归调用来遍历所有的文件名称;
            public  ArrayList<String> listDir(File dir){
                if(dir.isDirectory()){
                    File[] files = dir.listFiles();
                    for(File f:files){
                        listDir(f);
                    }
                }
                else{
                    String dirName = dir.getAbsolutePath();     
                    list.add(dirName);
                }
                return list;        
            }
        }

        //4.拿到文件目录下的所有文件;
        ArrayList<String> list = new ListDir().listDir(inFile);

        int len;
        BufferedInputStream bis;
        for(int i=0;i<list.size();i++){
            bis = new BufferedInputStream(new FileInputStream(list.get(i)));
            zos.putNextEntry(new ZipEntry(list.get(i)));
            byte[] bytes = new byte[512];
            while((len=bis.read(bytes))!=-1){
                bos.write(bytes,0,len);
                bos.flush();
            }
            bis.close();
        }
        bos.close();
    }
}


public class ZipDemo {

    public static void main(String[] args) throws IOException {
        //调用方法1;压缩一个文件
        ZipTool.compressFile("f:\\javatest\\1.java", "f:\\file.zip");
        //调用方法2:压缩一个文件夹
        ZipTool.compressFiles("f:\\javatest\\text", "f:\\files.zip");
        //调用方法3:压缩一个目录里面有多个文件和文件夹
        ZipTool.compressDir("f:\\javatest", "f:\\files.zip");


        System.out.println("zip succeed");

    }

}
高频网络协议与编程IO相关面试基本问题和知识点整理 网络IO相关基本高频面试基本问题和知识点整合 阅读详情

相关推荐

Qt OpenGL 3D 点云数据显示

在Qt中使用OpenGL显示3D点云数据是一个常见的需求,特别是在计算机视觉、机器人学和三维重建等领域。下面我将介绍一个基本的实现方案。

深之JohnChen的专栏 1236

Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream

通过上面的例子,我们知道压缩包里的是一个个ZipEntry对象,在解压时,可以遍历压缩包获取到ZipEntry对象。每一个ZipEntry对象都是一个文件,使用ZipFile可以获取到每一个ZipEntry对象的文件流;获取到文件流就可以将压缩包的文件读出来了。在创建ZipEntry对象时可以指定文件在压缩包的位置:new ZipEntry(“second-dir\second-01.txt”)用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。

Myd 1万+

ONNC Open Neural Network Compiler 开源神经网络编译器 一个 开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)部署导入ONNX模型

ONNC是一个集合了开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)。ONNC从底层开始构建,旨在将ONNX中间表示(IR)翻译成专有DLA代码。其软件架构设计强调可移植性和可重用性,从而简化了开发新后端的工作。上图展示了ONNC软件栈的顶层框图。软件栈从导入ONNX计算图模型到输出相应的硬件二进制文件,展示了各个功能块。

万有文的博客 1992

解决导出多个Excel表ZipOutputStream内存溢出问题——java heap space

在本地跑没有问题,但上传到服务器导出是,报错java heap space(内存溢出)。3、解决方案:先生成临时文件,然后再一点点写入压缩流里。1、检查错误,这段代码的问题。2、原因:流溢出导致程序报错。

student_hwj的博客 2459

FPGA中参数化SPI接口设计与Verilog实现

SPI(串行外设接口)作为嵌入式系统的核心通信协议,通过全双工、高速率特性在FPGA与Flash、ADC等外设交互中占据重要地位。参数化设计通过抽象时钟极性、数据位宽等可配置维度,采用分层架构实现硬件复用,显著提升开发效率。Verilog实现需重点处理跨时钟域同步和可配置帧结构,结合AXI总线集成与UVM验证方法学,可构建适应工业控制、物联网网关等场景的高可靠SPI解决方案。

ciya3282的博客 1406

Burp Suite手工验证CORS漏洞的四步闭环法

CORS(跨域资源共享)是Web应用实现跨域通信的基础机制,其安全本质在于服务端对Origin头的校验逻辑与响应头组合的语义一致性。当服务端错误地返回Access-Control-Allow-Origin: *并配合Access-Control-Allow-Credentials: true,或采用弱校验(如字符串包含匹配)时,将导致敏感数据泄露与凭据劫持风险。该漏洞难以被自动化扫描器发现,因其依赖请求上下文、认证状态及动态策略判断。Burp Suite作为核心工具,需通过构造跨域请求、捕获预检响应、交叉验

weixin_30596343的博客 512

java byte转zip_java ZipInputStream转成C#对应的代码怎么转

java:/*** 解压byte数组类型的Zip** @param data* @return* @throws IOException*/private static byte[] unZip(byte[] data) throws IOException {byte[] b = null;ByteArrayInputStream bis = new ByteArrayInputStream(d...

weixin_35182280的博客 391

【即插即用模块】注意力篇 | TGRS 2025 | CDFIM:通道+空间多尺度注意力,双模态特征融合增强,性能翻倍!

C2DFF-Net提出了一种轻量级跨模态特征融合模块CDFIM,通过模态差异感知和多尺度深度滤波增强双模态互补信息。该模块采用通道-空间注意力协同机制,以极低计算成本(仅增加0.26M参数)提升多模态目标检测性能,在三个遥感数据集上平均提升mAP约1.7%。适用于无人机等边缘设备的实时检测任务,为跨模态融合提供高效解决方案。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 623

ZIP压缩输入/输出流

ZIP压缩管理文件(ZIP archive)是一种十分典型的文件压缩形式。关于ZIP压缩的I/O实现,在Java的内置类中提供了非常好用的相关类,所以其实现方式非常简单。本文将介绍 java.util.zip包中的ZipOutputStream与ZipInputStream类来实现文件的压缩/解压缩。

weixin_44860226的博客 7077

【27】软考软件设计师——数据流图(DFD)补全题满分精讲|下午15分大题深度拆解

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第27篇,深度精讲**下午案例题第1道必考大题:数据流图(DFD)补全**,该题单题分值高达**12 ~ 15分**,是整张试卷最稳的保底得分大题。我结合多年备考复盘与真题阅卷规则,超详细拆解DFD四大核心元素标准定义、机考绘图规范、三层分层逻辑、**父图子图平衡刚性扣分规则**,升级强化版「DFD满分补全三步法」;复刻历年高频真题完整流程,拆解缺失数据流定位、实体/存储辨析、平衡改错、文字需求对照全流程,配套**阅卷满分答题话术、机考避坑细则

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 589

39-高级优化技术:指令调度与乱序执行 - 手把手教你手写CPU

本文介绍了现代处理器设计中提高指令级并行性(ILP)的两种关键技术:指令调度和乱序执行。指令调度分为静态调度(由编译器完成)和动态调度(由硬件完成),后者能更好适应运行时情况但复杂度更高。乱序执行通过动态重排指令顺序提高硬件利用率,其核心组件包括重排序缓冲区、保留站和寄存器重命名。文章提供了保留站的Verilog实现示例,并分析了不同优化技术在性能、硬件开销和功耗方面的权衡。最终指出,CPU设计需根据性能、功耗等需求选择合适的优化技术。

2301_79143213的博客 85

Java实现创建Zip压缩包并写入文件

使用ZipOutputStream创建压缩包,并将数据写入到压缩包内形成文件,当然也可以在压缩包内构建多级目录文件。

weixin_45866737的博客 7047

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 135

Java ZipOutputStream 的使用,实现压缩文件

Java ZipOutputStream 的使用,实现压缩文件

shijialeya 6374

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java使用ZipOutputStream时出现的“不可预料的压缩文件末端”问题

java使用ZipOutputStream时出现的“不可预料的压缩文件末端”问题1. 问题2. 过程3. 原因表象深究本质4. 结论 上面有目录,嫌麻烦的可以直接看结论 1. 问题   之前使用java自带的压缩工具,ZipOutputStream写了一个压缩文件的方法。前几天整理代码的时候,更改了关流方式,同时整理了一下代码结构。当时没有注意重新测试这个方法,今天使用调用这个工具方法的接口时,发现生成的压缩文件不可读,出现 不可预料的压缩文件末端 的问题。   问题在于,这个压缩方法在许久之前是可以

shenpengyus的博客 6758

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

关于Java使用ZipOutputStream创建压缩文件

关于Java使用ZipOutputStream创建压缩文件的方法,具体使用如下: /** * 此方法用于将文件写入zip管理文件里,同样也可以是已经创建好的zip管理文件 * @throws Exception */ public static void test4() throws Exception { //1.定义将要压缩的文件 File src=new File(&amp;amp;amp;amp;quot;G...

qq_42418169的博客 1562

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java使用ZipOutputStream导出压缩文件时,文件名中文乱码

Java使用ZipOutputStream导出压缩文件时,文件名中文乱码

weixin_41612951的博客 3714

Java ZipOutputStream压缩文件目录或文件

网上介绍Java使用ZipOutputStream大多数不是期望的方式,很多压缩的时候写的是绝对路径 如:D:/abc/ 压缩的时候以同样的文件路径写到ZIP文件上,所以自已研究后贴出亲测的代码 Path filepath = Paths.get("E:\\siniSVN\\res\\AAMS-V10");//目标文件夹 String zipname = "D:\\abcd.zip";//目标输出路径 try (ZipOutputStream zipOutputStream = new.

victorKevin 1923

java 1.7图片压缩,手把手教你分析java基础15.7.1 压缩文件ZipOutputStream

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到java基础15.7.1 压缩文件ZipOutputStream的问题,如果我们遇到了java基础15.7.1 压缩文件ZipOutputStream的情况,该怎么处理怎么才能解决java基础15.7.1 压缩文件ZipOutputStream带来的困扰呢,对于这样的问题其实我们只需要电脑javapublic ZipO...

weixin_32000561的博客 238

java的ZipOutputStream压缩文件的两个问题(乱码和每次zip后文件md5变化)

java的ZipOutputStream压缩文件的两个问题(乱码和每次zip后文件md5变化) 1、乱码问题可以使用org.apache.tools.zip 2、md5每次都变化只需要设置entry.setTime(1) posted on 2008-11-20 1...

weixin_30577801的博客 298

Java中Zip压缩文件的读写及应用(ZipInputStream ZipOutputStream)

Java中Zip压缩文件的读写

m0_66605858的博客 5384

java 压缩文件 ZipOutputStream 支持中文

本文转载于:http://www.blogjava.net/xcp/archive/2009/10/30/CompressToZip.html 最近因为项目的需要,要做一个打包下载..而java提供的java.util.zip.*.......对中文不支持...反来到网上看了一下..要修改java的原代码..而无意之间又发现了ant的打包,直接支持中文打包..当时乐得...下面就...

蓝色天空 211

java中使用ZipOutputStream流压缩文件或者文件夹

工作中用到了文件压缩,在这里记录一下

fwfwfwfwfwfwf的博客 1579

java zipoutputstream_利用java的ZipOutputStream类压缩文件或文件夹中的文件

package codemaking.util;import java.io.File;import org.apache.tools.zip.ZipOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.ZipInputStream;import java.u...

weixin_39825941的博客 149

Java使用ZipOutputStream压缩文件、文件夹,输出下载到本地

两种方式,1、使用Spring,文件在线URL输出到请求响应response,提供下载。2、使用本地文件夹,压缩成zip输出到相应目录,第一种传ZipEntry类,相当于在压缩包中放了一个文件,文件内容为空 ZipEntry有一个构造器,可以实现以路径的形式生成文件夹,例如`new ZipEntry("a/b/c.jpg")`,最终生成的压缩包中包含a文件夹,a文件夹内部包含b,b文件夹内部包含c.jpg,利用这个性质,就可以写一个递归,检索文件夹,如果检索过程中又发现文件夹,则继续递归.........

a1308003218的博客 1614

java用zipOutputStream压缩后用WinRAR解压出现“不可预料的压缩文件末端”错误

问题解压文件出现“不可预料的压缩文件末端”错误,用360解压和快压解压没有问题,用WinRAR解压出错 后台代码压缩方法 /** * 递归压缩文件夹 * @param srcRootDir 压缩文件夹根目录的子路径 * @param file 当前递归压缩的文件或目录对象 * @param zos 压缩文件存储对象 * @throws Exception */ publ...

zzjfengz的专栏 7782
上一篇: java:final和static初学
下一篇: java枚举:初学(1)
Coder-Qian
博客等级 码龄11年 63粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值