日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例

發(fā)布時間:2025/3/21 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文實例講述了java實現(xiàn)一次性壓縮多個文件到zip中的方法。分享給大家供大家參考,具體如下:

1.需要引入包:import?java.io.File;

import?java.io.FileInputStream;

import?java.io.FileOutputStream;

import?java.io.IOException;

import?java.util.ArrayList;

import?java.util.List;

import?java.util.zip.ZipEntry;

import?java.util.zip.ZipOutputStream;

import?org.springframework.util.StringUtils;

2.代碼/**

*?@Title:?compress

*?@Description:?TODO

*?@param?filePaths?需要壓縮的文件地址列表(絕對路徑)

*?@param?zipFilePath?需要壓縮到哪個zip文件(無需創(chuàng)建這樣一個zip,只需要指定一個全路徑)

*?@param?keepDirStructure?壓縮后目錄是否保持原目錄結(jié)構(gòu)

*?@throws?IOException

*?@return?int??壓縮成功的文件個數(shù)

*/

public?static?int?compress(List?filePaths,?String?zipFilePath,Boolean?keepDirStructure)?throws?IOException{

byte[]?buf?=?new?byte[1024];

File?zipFile?=?new?File(zipFilePath);

//zip文件不存在,則創(chuàng)建文件,用于壓縮

if(!zipFile.exists())

zipFile.createNewFile();

int?fileCount?=?0;//記錄壓縮了幾個文件?

try?{

ZipOutputStream?zos?=?new?ZipOutputStream(new?FileOutputStream(zipFile));

for(int?i?=?0;?i?

String?relativePath?=?filePaths.get(i);

if(StringUtils.isEmpty(relativePath)){

continue;

}

File?sourceFile?=?new?File(relativePath);//絕對路徑找到file

if(sourceFile?==?null?||?!sourceFile.exists()){

continue;

}

FileInputStream?fis?=?new?FileInputStream(sourceFile);

if(keepDirStructure!=null?&&?keepDirStructure){

//保持目錄結(jié)構(gòu)

zos.putNextEntry(new?ZipEntry(relativePath));

}else{

//直接放到壓縮包的根目錄

zos.putNextEntry(new?ZipEntry(sourceFile.getName()));

}

//System.out.println("壓縮當(dāng)前文件:"+sourceFile.getName());

int?len;

while((len?=?fis.read(buf))?>?0){

zos.write(buf,?0,?len);

}

zos.closeEntry();

fis.close();

fileCount++;

}

zos.close();

//System.out.println("壓縮完成");

}?catch?(Exception?e)?{

e.printStackTrace();

}

return?fileCount;

}

3.測試public?static?void?main(String[]?args)?throws?IOException?{

List?sourceFilePaths?=?new?ArrayList();

sourceFilePaths.add("d:/test/C08065.jpg");

sourceFilePaths.add("d:/test/新建文件夾/C08984.jpg");

sourceFilePaths.add("d:/test/找不到我.jpg");//試一個找不到的文件

//指定打包到哪個zip(絕對路徑)

String?zipTempFilePath?=?"D:/test/test.zip";

//調(diào)用壓縮

int?s?=?compress(sourceFilePaths,?zipTempFilePath,false);

System.out.println("成功壓縮"+s+"個文件");

}

總結(jié)

以上是生活随笔為你收集整理的java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。