JAVA开发 选择多个文件,系统运行后自动生成ZIP压缩包

选择多个文件,系统运行后自动生成ZIP压缩包

实现方法

案例简述:通过启动java代码来打开文件选择器对话框,用户选择确认需要进行压缩的文件,可一次性选择多个文件,选择完毕后点击按钮确认,指定位置自动生成压缩包。

1.1 代码块

import javax.imageio.stream.FileImageInputStream;
import javax.swing.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;

public class FileZipper {

    //生成文件名
    public static String GenerateFileName(String filePath,String suffix){
        String filename;
        Date date = new Date();
        SimpleDateFormat dsf = new SimpleDateFormat("yyyyMMddHHss");
        filename = filePath + dsf.format(date) + " temp" +suffix;
        return filename;
    }


    //选择多个文件,生成压缩包
    public static void FileZipperByMulties() throws FileNotFoundException {
        String filePath = "D:\\JAVAFILE\\attachments\\rars\\";
        JFileChooser fileChooser = new JFileChooser("C:\\Users\\ASUS-PC\\Desktop\\csdn");
        fileChooser.setMultiSelectionEnabled(true);
        fileChooser.setDialogTitle("请选择要压缩的文件(可选择多个)");
        fileChooser.setApproveButtonText("确定");

        int value = fileChooser.showOpenDialog(null);
        if(value != JFileChooser.APPROVE_OPTION){
            return;
        }

        File outZipFile = new File(GenerateFileName(filePath,".zip"));
        File[] files = fileChooser.getSelectedFiles();
        try(ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(outZipFile))){
            for(File file:files){
                ZipEntry zipEntry = new ZipEntry(file.getName());
                zipOutputStream.putNextEntry(zipEntry);
                try(FileImageInputStream fileImageInputStream = new FileImageInputStream(file)) {
                    byte[] bytes = new byte[1024];
                    int length;
                    while((length = fileImageInputStream.read(bytes))>0){
                        zipOutputStream.write(bytes,0,length);
                    }
                }
            }
            zipOutputStream.closeEntry();

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }


    public static void main(String[] args) {
        try{
            FileZipperByMulties();
            System.out.println("File compressed successfully!");
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
}

1.2 运行结果截取

  1. 文件选择器对话框选择多个文件
    在这里插入图片描述
  2. 控制台输出,表示执行正确
    在这里插入图片描述
  3. 压缩包信息
    在这里插入图片描述
    在这里插入图片描述

相关知识

JAVA开发 选择指定的文件生成ZIP压缩包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进击的小程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值