zoukankan      html  css  js  c++  java
  • 使用 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 }

     

    三、运行结果

  • 相关阅读:
    JBPM使用
    eclipse spring3.X redis 整合-配置
    30分钟学会如何使用Shiro
    Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
    Eclipse上Maven环境配置使用 (全)
    redis未设置idle超时时间导致连接过多
    linux下搭建redis并解决无法连接redis的问题
    redis配置用户认证密码
    spring配置redis
    Linux nohup和&后台运行,进程查看及终止,进程信息输出,控制台信息输出
  • 原文地址:https://www.cnblogs.com/zfc-java/p/8270612.html
Copyright © 2011-2022 走看看