文件批量打包下载

xiaoxiao2021-02-28  11

package zy_cms_web;

import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;

public class ZipTest {

public static void main(String[] args) { // 需要压缩的文件--包括文件地址和文件名 String[] path = { "E:\\DATA\\Log_File\\log1.txt", "E:\\DATA\\Log_File\\log2.txt" }; // 要生成的压缩文件地址和文件名称 String desPath = "C:\\Users\\dancer\\Desktop\\DownLoad.zip"; File zipFile = new File(desPath); ZipOutputStream zipStream = null; FileInputStream zipSource = null; BufferedInputStream bufferStream = null; try { // 构造最终压缩包的输出流 zipStream = new ZipOutputStream(new FileOutputStream(zipFile)); for (int i = 0; i < path.length; i++) { File file = new File(path[i]); // 将需要压缩的文件格式化为输入流 zipSource = new FileInputStream(file); // 压缩条目不是具体独立的文件,而是压缩包文件列表中的列表项,称为条目,就像索引一样 ZipEntry zipEntry = new ZipEntry(file.getName()); // 定位该压缩条目位置,开始写入文件到压缩包中 zipStream.putNextEntry(zipEntry); // 输入缓冲流 bufferStream = new BufferedInputStream(zipSource, 1024 * 10); int read = 0; // 创建读写缓冲区 byte[] buf = new byte[1024 * 10]; while ((read = bufferStream.read(buf, 0, 1024 * 10)) != -1) { zipStream.write(buf, 0, read); } } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭流 try { if (null != bufferStream) bufferStream.close(); if (null != zipStream) zipStream.close(); if (null != zipSource) zipSource.close(); } catch (IOException e) { e.printStackTrace(); } } }

}

转载请注明原文地址: https://www.6miu.com/read-1750279.html

最新回复(0)