针对一个文件夹压缩成zip文件
2016-03-30 21:53
483 查看
import java.io.File; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class ZipTool { /* * inputFileName 输入一个文件夹 * zipFileName 输出一个压缩文件夹 */ public void zip(String inputFileName,String zipFileName) throws Exception { System.out.println("正在压缩文件======>"+inputFileName); File zipDir = new File(zipFileName); if(!zipDir.getParentFile().exists()){ zipDir.getParentFile().mkdirs(); } zip(zipFileName, new File(inputFileName)); } private void zip(String zipFileName, File inputFile) throws Exception { ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFileName))); out.setEncoding("GBK"); zip(out, inputFile, ""); System.out.println("======>生成压缩文件"+zipFileName); out.close(); } private void zip(ZipOutputStream out, File f, String base) throws Exception { if (f.isDirectory()) { File[] fl = f.listFiles(); if(base != ""){ out.putNextEntry(new ZipEntry(base + "/")); } base = base.length() == 0 ? "" : base + "/"; for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + fl[i].getName()); } }else { if (base == "") { base = f.getName(); } out.putNextEntry(new ZipEntry(base)); FileInputStream in = new FileInputStream(f); int b; while ( (b = in.read()) != -1) { out.write(b); } in.close(); } } /** * 引用实例 * @param temp */ public static void main(String [] temp){ ZipTool book = new ZipTool(); try { book.zip("D:\\新建文件夹","D:\\22.zip");//你要压缩的文件夹 }catch (Exception ex) { ex.printStackTrace(); } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树