Java中Zip文件的压缩和解压缩

发布时间:2024-12-08 19:24:07 作者:小樊
来源:亿速云 阅读:82

在Java中,可以使用java.util.zip包中的类来处理ZIP文件的压缩和解压缩。以下是一些示例代码,展示了如何使用这些类来操作ZIP文件。

  1. 压缩文件:
import java.io.*;
import java.util.zip.*;

public class ZipExample {
    public static void main(String[] args) {
        String[] filesToZip = {"file1.txt", "file2.txt", "file3.txt"};
        String zipFileName = "example.zip";

        try {
            createZipFile(filesToZip, zipFileName);
            System.out.println("ZIP file created successfully.");
        } catch (IOException e) {
            System.err.println("Error creating ZIP file: " + e.getMessage());
        }
    }

    public static void createZipFile(String[] filesToZip, String zipFileName) throws IOException {
        FileOutputStream fos = new FileOutputStream(zipFileName);
        ZipOutputStream zos = new ZipOutputStream(fos);

        for (String fileName : filesToZip) {
            File file = new File(fileName);
            FileInputStream fis = new FileInputStream(file);
            ZipEntry ze = new ZipEntry(file.getName());
            zos.putNextEntry(ze);

            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) > 0) {
                zos.write(buffer, 0, length);
            }

            zos.closeEntry();
            fis.close();
        }

        zos.close();
        fos.close();
    }
}
  1. 解压缩文件:
import java.io.*;
import java.util.zip.*;

public class UnzipExample {
    public static void main(String[] args) {
        String zipFileName = "example.zip";
        String destDirectory = "output";

        try {
            unzipFile(zipFileName, destDirectory);
            System.out.println("ZIP file extracted successfully.");
        } catch (IOException e) {
            System.err.println("Error extracting ZIP file: " + e.getMessage());
        }
    }

    public static void unzipFile(String zipFileName, String destDirectory) throws IOException {
        File destDir = new File(destDirectory);
        if (!destDir.exists()) {
            destDir.mkdir();
        }

        ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName));
        ZipEntry ze;

        while ((ze = zis.getNextEntry()) != null) {
            String fileName = destDirectory + File.separator + ze.getName();
            if (!ze.isDirectory()) {
                extractFile(zis, fileName);
            } else {
                File dir = new File(fileName);
                dir.mkdirs();
            }
            zis.closeEntry();
        }

        zis.close();
    }

    public static void extractFile(ZipInputStream zis, String fileName) throws IOException {
        FileOutputStream fos = new FileOutputStream(fileName);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = zis.read(buffer)) > 0) {
            fos.write(buffer, 0, length);
        }
        fos.close();
    }
}

这些示例代码展示了如何使用Java的java.util.zip包来压缩和解压缩ZIP文件。createZipFile方法用于创建ZIP文件,而unzipFile方法用于解压缩ZIP文件。注意,这些示例代码没有进行详细的错误处理和资源管理,实际应用中可能需要更健壮的实现。

推荐阅读:
  1. double类型数值比较的坑
  2. java验证码学习一

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:PHP与ThinkPHP的开发模式

下一篇:如何在Java中实现Zip文件的动态压缩

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》