文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>压缩类[资料一]--使用java.util.zip.*压缩

压缩类[资料一]--使用java.util.zip.*压缩

时间:2007-08-22  来源:sdwsyjp

/*
 * Created on 2006-3-21
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package book.example.photoprint.util;

/**
 * @author lizhenjie
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
import java.util.*;
import java.util.zip.*;
import java.io.*;

public class Compressor {
 /**
  * 压缩文件
  * @param zipFileName 保存的压缩包文件路径
  * @param inputFile 需要压缩的文件夹或者文件路径
  * @throws Exception
  */
 public static void zip(String zipFileName, String inputFile) throws Exception {
  zip(zipFileName, new File(inputFile));
 }

 private static void zip(String zipFileName, File inputFile) throws Exception {
  ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
    zipFileName));
  zip(out, inputFile, "");//递归压缩方法
  System.out.println("zip done");
  out.close();
 }
    /**
     * 递归压缩方法
     * @param out  压缩包输出流
     * @param f    需要压缩的文件
     * @param base 压缩的路径
     * @throws Exception
     */
 private static void zip(ZipOutputStream out, File f, String base) throws Exception {
  System.out.println("Zipping  " + f.getName()); //记录日志,开始压缩
  if (f.isDirectory()) {  // 如果是文件夹,则获取下面的所有文件
   File[] fl = f.listFiles();
   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 {  // 如果是文件,则压缩
   out.putNextEntry(new ZipEntry(base)); // 生成下一个压缩节点
   FileInputStream in = new FileInputStream(f);  // 读取文件内容
   int b;
   while ((b = in.read()) != -1)
    out.write(b);  // 写入到压缩包
   in.close();
  }
 }
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载