• 使用 Java 将多个文件压缩成一个压缩文件


    使用 Java 将多个文件压缩成一个压缩文件

    一、内容

      ①使用 Java 将多个文件打包压缩成一个压缩文件;

      ②主要使用 java.io 下的类

    二、源代码:ZipMultiFile.java

     1 package cn.com.zfc.day018;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.util.zip.ZipEntry;
     8 import java.util.zip.ZipOutputStream;
     9 
    10 /**
    11  * @describe 压缩多个文件
    12  * @author zfc
    13  * @date 2018年1月11日 下午8:34:00
    14  */
    15 public class ZipMultiFile {
    16 
    17     public static void main(String[] args) {
    18         File[] srcFiles = { new File("E:\母亲.mp4"), new File("E:\飞机.pdf"), new File("E:\家里密码.txt") };
    19         File zipFile = new File("E:\ZipFile.zip");
    20         // 调用压缩方法
    21         zipFiles(srcFiles, zipFile);
    22     }
    23 
    24     public static void zipFiles(File[] srcFiles, File zipFile) {
    25         // 判断压缩后的文件存在不,不存在则创建
    26         if (!zipFile.exists()) {
    27             try {
    28                 zipFile.createNewFile();
    29             } catch (IOException e) {
    30                 e.printStackTrace();
    31             }
    32         }
    33         // 创建 FileOutputStream 对象
    34         FileOutputStream fileOutputStream = null;
    35         // 创建 ZipOutputStream
    36         ZipOutputStream zipOutputStream = null;
    37         // 创建 FileInputStream 对象
    38         FileInputStream fileInputStream = null;
    39 
    40         try {
    41             // 实例化 FileOutputStream 对象
    42             fileOutputStream = new FileOutputStream(zipFile);
    43             // 实例化 ZipOutputStream 对象
    44             zipOutputStream = new ZipOutputStream(fileOutputStream);
    45             // 创建 ZipEntry 对象
    46             ZipEntry zipEntry = null;
    47             // 遍历源文件数组
    48             for (int i = 0; i < srcFiles.length; i++) {
    49                 // 将源文件数组中的当前文件读入 FileInputStream 流中
    50                 fileInputStream = new FileInputStream(srcFiles[i]);
    51                 // 实例化 ZipEntry 对象,源文件数组中的当前文件
    52                 zipEntry = new ZipEntry(srcFiles[i].getName());
    53                 zipOutputStream.putNextEntry(zipEntry);
    54                 // 该变量记录每次真正读的字节个数
    55                 int len;
    56                 // 定义每次读取的字节数组
    57                 byte[] buffer = new byte[1024];
    58                 while ((len = fileInputStream.read(buffer)) > 0) {
    59                     zipOutputStream.write(buffer, 0, len);
    60                 }
    61             }
    62             zipOutputStream.closeEntry();
    63             zipOutputStream.close();
    64             fileInputStream.close();
    65             fileOutputStream.close();
    66         } catch (IOException e) {
    67             e.printStackTrace();
    68         }
    69 
    70     }
    71 }

     

    三、运行结果

  • 相关阅读:
    BZOJ 1036 树的统计
    codevs 4712 gcd与lcm问题
    codevs 1574 矩阵乘法
    Python定时任务框架APScheduler
    PHP集成支付宝快速实现充值功能
    玩转Web之easyui(二)-----easy ui 异步加载生成树节点(Tree),点击树生成tab(选项卡)
    玩转Web之easyui(一)-----easy ui datagird 分页
    Android访问服务器(TOMCAT)乱码引发的问题
    工厂方法模式--结合具体例子学习工厂方法模式
    简单工厂模式--结合实例学习简单工厂模式
  • 原文地址:https://www.cnblogs.com/zfc-java/p/8270612.html
Copyright © 2020-2023  润新知