[java]将多个文件压缩成一个zip文件
2024-09-25 08:53:18
此文进阶请见:https://www.cnblogs.com/xiandedanteng/p/12155957.html
方法:
package zip; import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; // Used to zip a file
public class FileZipper {
private static final int BUFFER = 512; public boolean compressFilesToZip(String[] files,String zipfile) {
return rugularZip(files,zipfile);
} private boolean rugularZip(String[] fromFiles,String toFile) {
File zipFile=new File(toFile);
byte[] buffer=new byte[BUFFER];
int readLen=0; try {
ZipOutputStream zipOut=new ZipOutputStream(new FileOutputStream(zipFile)) ; int index=0;
for(String file:fromFiles) {
File fileWillZip=new File(file); if(fileWillZip.exists()) {
InputStream inputStream=new BufferedInputStream(new FileInputStream(fileWillZip));
String entryName="#"+index+"_"+fileWillZip.getName();// entryName should be a valid filename,no path seperater allowed
zipOut.putNextEntry(new ZipEntry(entryName)); while((readLen=inputStream.read(buffer,0,BUFFER))!=-1) {
zipOut.write(buffer,0,readLen);
}
inputStream.close(); index++;
}
} zipOut.close();
}catch(Exception e) {
e.printStackTrace();
return false;
} return true;
} public static void main(String[] args) {
String[] files= {"D:\\wallpaper\\5760666873360998521.jpg",
"D:\\wallpaper\\luda1.jpg",
"D:\\wallpaper\\luda2.jpg",
"D:\\wallpaper\\luda3.jpg",
"D:\\wallpaper\\luda4.jpg",
"D:\\wallpaper\\sheeps.jpg"};
String zipfile="D:\\wallpaper\\result.zip"; FileZipper fz=new FileZipper();
fz.compressFilesToZip(files, zipfile);
}
}
效果:
--END-- 2020-01-06
最新文章
- PHP错误处理函数set_error_handler()的用法
- 【BZOJ1012】 【JSOI2008】最大数maxnumber
- Web标准和搜索引擎优化技术
- 【Jenkins】jenkins简单搭建并执行任务
- [Effective JavaScript 笔记]第50条:迭代方法优于循环
- parent,parents和closest
- C#利用SharpZipLib解压或压缩文件夹实例操作
- Algorithms Part 1-Question 6- 2SUM Median-数和以及中位数问题
- 不规则三角网(TIN)(转)
- 配置mybatis错误总结
- python学习(四)五数连珠
- mysql DBI 事务控制
- JAVA之Exchanger
- Bubbles Shader in Houdini泡泡泡泡泡泡泡泡泡泡
- MySQL 笔记整理(17) --如何正确地显示随机消息?
- 记一次查询超时的解决方案The timeout period elapsed......
- gjt常用命令---chalee
- springMVC控制器,处理器,映射器,适配器
- springcloud开篇
- openFileDialog的使用