Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java 压缩文件

作者:徒醉了清风   发布日期:2025-09-13   浏览:62

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class FileCompressor {

    /**
     * 压缩单个文件到指定的ZIP文件中。
     *
     * @param srcFile  要压缩的源文件路径
     * @param zipFile  压缩后的ZIP文件路径
     */
    public static void compressFileToZip(String srcFile, String zipFile) {
        try (FileOutputStream fos = new FileOutputStream(zipFile);
             ZipOutputStream zos = new ZipOutputStream(fos)) {

            File file = new File(srcFile);
            if (!file.exists()) {
                System.out.println("文件不存在: " + srcFile);
                return;
            }

            // 创建Zip条目
            ZipEntry zipEntry = new ZipEntry(file.getName());
            zos.putNextEntry(zipEntry);

            // 将文件内容写入ZIP流中
            try (FileInputStream fis = new FileInputStream(file)) {
                byte[] buffer = new byte[1024];
                int length;
                while ((length = fis.read(buffer)) >= 0) {
                    zos.write(buffer, 0, length);
                }
            }

            zos.closeEntry();
            System.out.println("文件已成功压缩: " + zipFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 示例:将一个文本文件压缩为ZIP文件
        compressFileToZip("example.txt", "example.zip");
    }
}

解释说明:

  1. 导入必要的包:程序使用了java.io.*java.util.zip.*包来处理文件输入输出和压缩操作。
  2. compressFileToZip方法:该方法接收两个参数,分别是源文件路径和目标ZIP文件路径。它会检查源文件是否存在,然后创建一个ZIP条目并将文件内容写入ZIP文件中。
  3. ZipEntry对象:表示ZIP文件中的一个条目(即压缩后的文件)。通过zos.putNextEntry()方法将这个条目添加到ZIP输出流中。
  4. 缓冲区读取:使用FileInputStream读取源文件,并通过一个1024字节的缓冲区将数据写入ZIP输出流中。
  5. 关闭资源:使用try-with-resources语法确保所有打开的资源在使用完毕后自动关闭,避免资源泄漏。
  6. main方法:提供了一个简单的示例,演示如何调用compressFileToZip方法将一个文本文件压缩为ZIP文件。

如果你有任何问题或需要进一步的帮助,请告诉我!

上一篇:linux 查看java版本

下一篇:java 跳出循环

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站