java实现单个文件多个文件的zip压缩

Java(112):使用ZIP对多个文件进行压缩与解压(ZipUtil) 使用ZIP对多个文件进行压缩与解压(ZipUtil) 阅读详情

java实现压缩单个文件和多个文件

已经解决乱码问题,需要下载ant.jar 包

package com.jz.zip;
/**
 * @ClassName:     ZipFile.java
 * @Description:   TODO(用一句话描述该文件做什么) 
 * 
 * @author         Administrator
 * @E-mail         809044093@qq.com 
 * @version        V1.0  
 * @Date           2014-3-24 上午11:30:58 
 */
 


import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
  
/*  
 * 采用JDK API中自带的类时压缩的文件会出现中文乱码  
 */  
//import java.util.zip.ZipEntry;  
//import java.util.zip.ZipOutputStream;  
  
/*  
 * 采用ANT中ant.jar包的类可以解决中文乱码问题  
 */  
import org.apache.tools.zip.ZipEntry;  
import org.apache.tools.zip.ZipOutputStream;  
import org.junit.Test;
  
/**  
 *Module:          ZipFileUtil.java  
 *Description:    用zip对单个和多个文件进行压缩  
 *Company:       xxx  
 *Version:          1.0.0  
 *Author:           pantp  
 *Date:              May 24, 2012  
 */  
public class ZipFile {  
  
    public static void main(String[] args) throws Exception {  
    	System.setProperty("sun.zip.encoding", System.getProperty("sun.jnu.encoding"));
    	System.out.println(System.getProperty("sun.zip.encoding")); //ZIP编码方式  
        System.out.println(System.getProperty("sun.jnu.encoding")); //当前文件编码方式  
        System.out.println(System.getProperty("file.encoding")); //这个是当前文件内容编码方式    
        
    }  
    
    
    /**
     * 
     * @Title: testMethod
     * @Description: TODO(JUnit测试1)
     * @param:    
     * @return: void   
     * @throws
     */
    @Test
    public  void  testMethod(){
    	 /*  
         * 测试单个文件的ZIP压缩   
         * 指定文件路径可以是绝对路径,也可以是相对路径  
         */  
        String file = "src/zip/文件1.txt";  
        String zipFile1 = "src/zip/单个文件压缩.zip";  
        boolean flag1;
		try {
			flag1 = zipSingleFile(file, zipFile1);
			 System.out.println("\n**************压缩【单】个文件<author:pantp>******************************\n");  
		        if (flag1) {  
		            System.out.println("单个文件ZIP压缩成功,压缩后文件所在路径为:"+zipFile1);  
		        } else {  
		            System.out.println("单个文件ZIP压缩失败");  
		        }  
		        System.out.println("\n*******************************************************************************");  
		    	
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
       
    }
    /**
     * 
     * @Title: testMethod2
     * @Description: TODO(测试2)
     * @param:    
     * @return: void   
     * @throws
     */
    @Test
    public void testMethod2(){
    	
    	/*  
         * 测试多个文件的ZIP压缩  
         * 指定文件路径可以是绝对路径,也可以是相对路径  
         */  
        String files[] = { "src/zip/文件1.txt", "src/zip/file2.txt" };  
        String zipFile2 = "src/zip/多个文件压缩.zip";  
        boolean flag2;
		try {
			flag2 = zipFiles(files, zipFile2);
			System.out.println("\n**************压缩【多】个文件<author:pantp>******************************\n");  
		        if (flag2) {  
		            System.out.println("多个文件ZIP压缩成功,压缩后文件所在路径为:"+zipFile2);  
		        } else {  
		            System.out.println("多个文件ZIP压缩失败");  
		        }  
		        System.out.println("\n*******************************************************************************");  
		    
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
       
    }
    
    
  
    /**  
     *<p>  
     *@param  file 待压缩文件的名称 例如,src/zip/文件1.txt  
     *@param  zipFile 压缩后文件的名称 例如,src/zip/单个文件压缩.zip  
     *@return boolean  
     *@throws :IOException  
     *@Function: zipSingleFile  
     *@Description:单个文件的压缩  
     *@version : v1.0.0  
     *@author: pantp  
     *@Date:May 24, 2012  
     *</p>  
     *Modification History:  
     * Date                     Author          Version         Description  
     * ---------------------------------------------------------------------  
     * May 24, 2012        pantp           v1.0.0           Create  
     */  
    public static boolean zipSingleFile(String file, String zipFile)  
            throws IOException {  
        boolean bf = true;  
        File f = new File(file);  
        if (!f.exists()) {  
            System.out.println("文件不存在");  
            bf = false;  
        } else {  
            File ff = new File(zipFile);  
            if (!f.exists()) {  
                ff.createNewFile();  
            }  
            // 创建文件输入流对象  
            FileInputStream in = new FileInputStream(file);  
            // 创建文件输出流对象  
            FileOutputStream out = new FileOutputStream(zipFile);  
            // 创建ZIP数据输出流对象  
            ZipOutputStream zipOut = new ZipOutputStream(out); 
            //设置文件名编码方式
            zipOut.setEncoding(System.getProperty("sun.jnu.encoding")); 
            // 得到文件名称  
            String fileName = file.substring(file.lastIndexOf('/') + 1, file.length());  
            // 创建指向压缩原始文件的入口  
            ZipEntry entry = new ZipEntry(fileName);  
            zipOut.putNextEntry(entry);  
            // 向压缩文件中输出数据  
            int number = 0;  
            byte[] buffer = new byte[512];  
            while ((number = in.read(buffer)) != -1) {  
                zipOut.write(buffer, 0, number);  
            }  
            zipOut.close();  
            out.close();  
            in.close();  
        }  
        return bf;  
    }  
  
    /**  
     *<p>  
     *@param files    待压缩的文件列表 例如,src/zip/文件1.txt, src/zip/file2.txt  
     *@param zipfile 压缩后的文件名称 例如,src/zip/多个文件压缩.zip  
     *@return boolean  
     *@throws :Exception  
     *@Function: zipFiles  
     *@Description:多个文件的ZIP压缩  
     *@version : v1.0.0  
     *@author: pantp  
     *@Date:May 24, 2012  
     *</p>  
     *Modification History:  
     * Date                     Author          Version         Description  
     * ---------------------------------------------------------------------  
     * May 24, 2012        pantp           v1.0.0           Create  
     */  
    public static boolean zipFiles(String[] files, String zipfile)  
            throws Exception {  
        boolean bf = true;  
  
        // 根据文件路径构造一个文件实例  
        File ff = new File(zipfile);  
        // 判断目前文件是否存在,如果不存在,则新建一个  
        if (!ff.exists()) {  
            ff.createNewFile();  
        }  
        // 根据文件路径构造一个文件输出流  
        FileOutputStream out = new FileOutputStream(zipfile);  
        // 传入文件输出流对象,创建ZIP数据输出流对象  
        ZipOutputStream zipOut = new ZipOutputStream(out);  
        //设置文件名编码方式
        zipOut.setEncoding(System.getProperty("sun.jnu.encoding")); 
        // 循环待压缩的文件列表  
        for (int i = 0; i < files.length; i++) {  
            File f = new File(files[i]);  
            if (!f.exists()) {  
                bf = false;  
            }  
            try {  
                // 创建文件输入流对象  
                FileInputStream in = new FileInputStream(files[i]);  
                // 得到当前文件的文件名称  
                String fileName = files[i].substring(  
                        files[i].lastIndexOf('/') + 1, files[i].length());  
                System.out.println(fileName+"压缩文件的入口");
                // 创建指向压缩原始文件的入口  
                ZipEntry entry = new ZipEntry(fileName);  
                zipOut.putNextEntry(entry);  
                // 向压缩文件中输出数据  
                int nNumber = 0;  
                byte[] buffer = new byte[512];  
                while ((nNumber = in.read(buffer)) != -1) {  
                    zipOut.write(buffer, 0, nNumber);  
                }  
                // 关闭创建的流对象  
                in.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
                bf = false;  
            }  
        }  
        zipOut.close();  
        out.close();  
        return bf;  
    }  
      
}  


























Java实现Zip压缩多个文件的示例代码详解 本文还有配套的精品资源,点击获取 简介:在Java中,压缩和解压缩文件是一项基本技能,尤其是在数据处理和文件存储方面。本文演示了如何利用Java内置的 java.util.zip 库来压缩多个文件,并提供了一个具体的Java程序源码作为实例。程序中使用了 ZipOutputStream 和 ZipEntry 类,通过 add... 阅读详情

相关推荐

JAVA实现多个文件压缩为一个zip文件

很简单的代码,很轻松的实现将多个文件压缩成一个包

Java 压缩多个文件为zip包(中间不生成临时文件,直接压缩为zip二进制流),以及解压zip包二进制流为文件

Java 压缩多个文件为zip包及解压zip包以及压缩多文件为zip文件流解压zip二进制流(中间不生成临时文件,直接压缩为zip二进制流,并验证解压) 这篇博客将提供俩种方法, 1. 提前生成要压缩的多个文件,然后读取文件夹多层或一层去遍历压缩zip包 2. 直接用原始文件名称及二进制流,压缩返回zip包二进制流,中间不生成冗余文件; 很明显方法2更优一些; 3. 解压zip文件或者zip文件流验证; 4. 二进制流生成zip包

qq_40985985的博客 6523

Java使用Ant批量把文件打成ZIP压缩包

Java使用Ant批量把文件打成ZIP压缩包

java压缩:一次性压缩多个文件到zip中

java压缩:一次性压缩多个文件到zip中

cui8873的博客 4314

Java调用Zip类批量压缩多个文件.rar

Java调用Zip类批量压缩多个文件,此前有一个是压缩单个文件,也可参考,相关代码中可找到此源码。   public class ZipDemo extends JFrame{   JFileChooser fileChooser; //文件选择器   JList fileList; //待压缩的文件列表   Vector files; //文件数据(待压缩文件)   JButton jbAdd; //增加文件按钮   JButton jbDelete; //删除文件按钮   JButton jbZip; //压缩按钮   JTextField target; //目标文件文本域   public ZipDemo(){   super("用ZIP压缩多个文件"); //调用父类构造函数   fileChooser=new JFileChooser(); //实例化文件选择器   files=new Vector(); //实例化文件数据Vector   fileList=new JList(files); //实例化已选择文件列表   jbAdd=new JButton("增加"); //实例化按钮组件   jbDelete=new JButton("删除");   jbZip=new JButton("压缩");   target=new JTextField(18);   JPanel panel=new JPanel(); //实例化面板,用于容纳按钮   panel.add(jbAdd); //增加组件到面板上   panel.add(jbDelete);   panel.add(jbZip);   JPanel panel2=new JPanel();   panel2.add(new JLabel("目标文件"));   panel2.add(target);   JScrollPane jsp=new JScrollPane(fileList);   Container container=getContentPane(); //得到容器   container.add(panel2,BorderLayout.NORTH); //增加组件到容器   container.add(jsp,BorderLayout.CENTER);   container.add(panel,BorderLayout.SOUTH);   jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //设置边界

PointNetLK实战:5步搞定点云配准(附ModelNet40数据集训练技巧)

本文提供了一份详细的PointNetLK实战指南,帮助读者在5步内掌握点云配准技术。文章以ModelNet40数据集为例,深入讲解了环境搭建、数据预处理、模型训练与调试等核心步骤,并分享了关键的训练技巧和调参策略,旨在让开发者快速实现并应用这一高效的深度学习配准方法。

wind6的博客 461

如何将一个单独 .java文件打包为jar包

如何将一个单独 .java文件打包为jar包

Che_yibuhe_yibu的博客 2599

开关变换器小信号建模实战:从理论到环路设计

本文深入探讨了开关变换器小信号建模的实战技巧,从理论基础到环路设计全面解析。通过Buck和Boost变换器的具体案例,详细介绍了状态空间平均法、扰动法等关键建模技术,并分享环路补偿设计和实际调试中的宝贵经验。文章特别强调了小信号建模在电源设计中的重要性,为工程师提供了从理论到实践的完整解决方案。

weixin_29290259的博客 376

java实现单个或多个文件的压缩、解压缩 支持zip、rar等格式

代码如下: package com.cn.util; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.CRC32; import java.util.zip.

期待破茧成蝶 9527

Stata实战:用双向固定效应模型分析房价,从数据清洗到结果解读(附完整代码)

本文详细介绍了如何使用Stata实现房价数据的双向固定效应模型分析,从数据清洗到结果解读的全流程。通过具体代码示例,帮助读者掌握面板模型的应用技巧,特别适合经济学和金融学研究者进行房价影响因素分析。

weixin_31528001的博客 275

Silvaco TCAD仿真4——DeckBuild实战:从示例库到自定义设计

本文详细介绍了Silvaco TCAD仿真工具DeckBuild的实战应用,从示例库的使用到自定义设计的全过程。通过具体案例和参数修改技巧,帮助用户快速掌握TCAD仿真技术,提升半导体器件设计的效率和精度。特别适合需要从基础入门到进阶操作的工程师和研究人员。

weixin_29284657的博客 432

java的解压各种格式文件_java实现单个或多个文件的压缩、解压缩 支持zip、rar等格式...

packagecom.cn.util;importjava.io.BufferedInputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.util.zip.CRC32;importjava.util.zip.CheckedOutputStream;i...

weixin_42530458的博客 605

置顶必读(1) |《YOLOv11实战:从入门到深度优化》专栏导读,带你一文了解本专栏!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 12万+

JAVA:代码实现zip压缩

主要介绍了Java实现把文件及文件夹压缩成zip。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友可以参考下。

熬过万丈孤独,藏下星辰大海 1万+

安全监控:人员行为分析_(2).人员行为分析基础理论

人员行为分析是指利用计算机视觉技术对视频中的人类行为进行实时或离线检测、识别和理解的过程。视频采集:通过摄像头等设备获取视频数据。视频预处理:对视频数据进行噪声过滤、图像增强等处理,以便后续分析。特征提取:从视频中提取出与人员行为相关的特征,如人体姿势、动作轨迹等。行为识别:利用机器学习或深度学习模型对提取的特征进行分类,识别出具体的人员行为。行为理解:对识别出的行为进行进一步分析,理解其背后的意图或状态。在人员行为分析中,常用的公开数据集包括UCF101、HMDB51、ActivityNet等。

zhubeibei168的博客 1344

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合

可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖;

Limiiiing的博客 115

java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)

这2个工具类都推荐使用统一个场景的不通过写法 推荐第一种 package com.gblfy.test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.CRC32; import java.util.zip.CheckedOutputStream; import jav

Gblfy_Blog 1764

188、LLC谐振变换器的样机调试实战(EMI测试)

本文分享了LLC谐振变换器EMI调试的实战经验。作者通过300W电源案例,指出LLC的EMI问题主要来自谐振腔共模电流和死区振铃,并提出三板斧解决方案:优化功率回路布局、合理选择共模电感、正确配置X/Y电容。文章详细分析了谐振电容位置、MOSFET走线、变压器屏蔽等关键设计要点,并列举示波器探头、滤波器接地等常见误区。最后强调EMI调试70%依赖布局优化,建议预扫测试、数据记录并保留6dB余量。全文以实际案例贯穿,为LLC电源EMI设计提供了实用指导。

Jack010169的博客 54

java 将txt压缩gzip,Java实现文件压缩与解压[zip格式,gzip格式]

Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例。zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功...

weixin_30746095的博客 1133

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java创建多个文件夹_java 实现多个文件的Zip包的生成

最近在项目中遇到多个文件的达成Zip包,由于对这块不熟,在网上找到一个,现在忘了找的谁的,如果您发现了,请告诉我你的链接,我指明出处下面是相关代码:package run.utils;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOut...

weixin_39628186的博客 562

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java 压缩文件zip

鸣谢:http://blog.youkuaiyun.com/kalision/article/details/7864372 1.引言之前在 压缩与解压1---字符串的压缩与解压(http://www.cnblogs.com/java-pan/archive/2012/05/12/gzip1.html)中介绍过对字符串的压缩和解压,这个解压和解决用在系统之间大数据传输的时候还是可以大大的减少网络流量的。本节

韬晦潜胖蛇的专栏 2006

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java zip 高效 解压,java实现zip的压缩和解压

[ /** * 解压缩 * @param warPath 包地址 * @param unzipPath 解压后地址 */ public static void unzip(String warPath, String unzipPath) { File warF[转载:http://wintys.blog.51cto.com/425414/90872 import jav...

weixin_31766003的博客 1023

java 导出文件,导出多个文件方案~

项目经历:在项目中遇到了一个需求就是用户批量下载文件,方案有两种,第一种,就是前端去调用多个下载接口实现,第二种,就是服务端把文件打成zip包去导出文件。一 . 下载单个文件 ...

架构师与哈苏 5141

java io操作压缩文件_【Java】IO操作之使用zip包压缩和解压缩文件

Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作。我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作。ZipFilejava中的每一个压缩文件都是可以使用ZipFile来进行表示的。File file = new File("F:/zippath.zip");ZipFile zipFile = new Zip...

weixin_36139471的博客 327

IO操作之使用zip包压缩和解压缩文件

转自:http://www.cdtarena.com/java.html​ ​Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作。 我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作。 ZipFile java中的每一个压缩文件都是可以使用ZipFile来进行表示的。 [java]

cdtarena的专栏 480
上一篇: 个人开公司流程
下一篇: java监控文件夹内文件变化并且进行文件同步bigfilesync
prefectjava
博客等级 码龄16年 26粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

prefectjava

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值