Java如何压缩和解压缩zip文件

作者:佚名 上传时间:2023-03-23 运行软件:IntelliJ IDEA 软件版本:JDK 1.8 版权申诉

本示例演示如何使用Java进行zip文件的压缩和解压缩,利用JDK自带的java.util.zip.ZipInputStream和java.util.zip.ZipOutputStream实现文件压缩和解压缩功能。

// 压缩文件示例代码
import java.io.*;
import java.util.zip.*;

public class ZipDemo {
    public static void main(String[] args) {
        String sourcePath = "source/";
        String zipPath = "example.zip";
        try {
            // 创建FileOutputStream对象
            FileOutputStream fileOutputStream = new FileOutputStream(zipPath);
            // 创建ZipOutputStream对象
            ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
            // 循环遍历文件夹中的文件
            File file = new File(sourcePath);
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                // 创建FileInputStream对象
                FileInputStream fileInputStream = new FileInputStream(files[i]);
                // 将文件读入InputStream,并添加到指定ZipEntry中
                // 设置ZipEntry的名称
                zipOutputStream.putNextEntry(new ZipEntry(files[i].getName()));
                // 写入拷贝到ZipEntry的InputStream上
                int length;
                byte[] buffer = new byte[4096];
                while ((length = fileInputStream.read(buffer)) > 0) {
                    zipOutputStream.write(buffer, 0, length);
                }
                // 关闭当前ZipEntry并扫描下一个
                zipOutputStream.closeEntry();
                // 关闭FileInputStream
                fileInputStream.close();
            }
            // 关闭ZipOutputStream
            zipOutputStream.close();
            // 关闭FileOutputStream
            fileOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

// 解压文件示例代码
import java.io.*;
import java.util.zip.*;

public class UnZipDemo {
    public static void main(String[] args) {
        String zipPath = "example.zip";
        String targetPath = "target/";
        try {
            // 创建FileInputStream对象
            FileInputStream fileInputStream = new FileInputStream(zipPath);
            // 创建ZipInputStream对象
            ZipInputStream zipInputStream = new ZipInputStream(fileInputStream);
            // 读取ZipEntry并进行解压缩
            ZipEntry zipEntry;
            while ((zipEntry = zipInputStream.getNextEntry()) != null) {
                // 创建FileOutputStream对象
                FileOutputStream fileOutputStream = new FileOutputStream(targetPath + zipEntry.getName());
                // 读取当前ZipEntry的内容并写入OutputStream
                int length;
                byte[] buffer = new byte[4096];
                while ((length = zipInputStream.read(buffer)) > 0) {
                    fileOutputStream.write(buffer, 0, length);
                }
                // 关闭当前FileOutputStream
                fileOutputStream.close();
                // 关闭当前ZipEntry并扫描下一个
                zipInputStream.closeEntry();
            }
            // 关闭ZipInputStream
            zipInputStream.close();
            // 关闭FileInputStream
            fileInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
Javazip
本示例演示如何使用Java进行zip文件的压缩和解压缩,利用JDK自带的java.util.zip.ZipInputStream和java.util.zip.ZipOutputStream实现文件压缩
JDK 1.8
IntelliJ IDEA
2023-03-23 00:35
Java压缩和解压缩zip文件
这几天做一个操作docx的文档的功能,Apache的POI功能有限,就参考了相关资料写的一个Java压缩和解压zip文件的工具类。全部使用的是Java自带的类库,中文的文件名会有乱码的问题。
ZIP
0B
2019-01-14 11:29
javaZip、Jar、Gzip
我们经常会使用WinZIP等压缩软件将文件进行压缩以方便传输。在java里面也提供了将文件进行压缩以减少传输时的数据量的类,可以很方便的将文件压缩成ZIP、JAR、GZIP等形式,G
java压缩和解压缩zip文件
java压缩和解压缩为zip文件有测试类,可以直接测试。效果还不错,现网已经运行好长时间了
JAVA
0B
2019-10-19 02:48
java压缩和解压缩
java压缩和解压缩
RAR
0B
2018-12-09 05:39
java压缩和解压缩文件
NULL 博文链接:https://137459045.iteye.com/blog/1355221
RAR
0B
2019-04-08 12:25
压缩和解压缩ZIP
压缩和解压缩类,添加到项目就可以了。方法直接传参数就可以完成压缩和解压缩。注意的是必须用ZIP压缩工具压缩的文档才能解压。改后缀是不行的。
CS
0B
2019-05-04 18:17
Python压缩和解压缩zip文件
主要介绍了Python压缩和解压缩zip文件,本文直接给出实例代码,需要的朋友可以参考下
PDF
25KB
2020-09-29 18:47
Java操作zip工具类
需要用到ant.jar(这里使用的是ant-1.6.5.jar) 1 import java.io.File; 2 imp
zip格式)
using System;using System.Collections.Generic;using System.IO;using ICSharpCode.SharpZipLib.Zip