java多个文件压缩_java实现多个文件压缩

mport java.io.*; import java.util.*; import java.util.zip.ZipOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public class FileMgr {   public FileMgr() {   }   /**    * 压缩文件    * @param srcfile File[]  需要压缩的文件列表    * @param zipfile File    压缩后的文件    */   public static void ZipFiles(java.io.File[] srcfile, java.io.File zipfile) {     byte[] buf = new byte[1024];     try {       // Create the ZIP file       ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));       // Compress the files       for (int i = 0; i < srcfile.length; i++) {         FileInputStream in = new FileInputStream(srcfile[i]);         // Add ZIP entry to output stream.         out.putNextEntry(new ZipEntry(srcfile[i].getName()));         // Transfer bytes from the file to the ZIP file         int len;         while ( (len = in.read(buf)) > 0) {           out.write(buf, 0, len);         }         // Complete the entry         out.closeEntry();         in.close();       }       // Complete the ZIP file       out.close();       System.out.println("压缩完成.");     }     catch (IOException e) {       e.printStackTrace();     }   }   /**    * 解压缩    * @param zipfile File 需要解压缩的文件    * @param descDir String  解压后的目标目录    */   public static void UnZipFiles(java.io.File zipfile, String descDir) {     try {       // Open the ZIP file       ZipFile zf = new ZipFile(zipfile);       for (Enumeration entries = zf.entries(); entries.hasMoreElements(); ) {         // Get the entry name         ZipEntry entry = ( (ZipEntry) entries.nextElement());         String zipEntryName = entry.getName();         InputStream in = zf.getInputStream(entry);         // System.out.println(zipEntryName);         OutputStream out = new FileOutputStream(descDir + zipEntryName);         byte[] buf1 = new byte[1024];         int len;         while ( (len = in.read(buf1)) > 0) {           out.write(buf1, 0, len);         }         // Close the file and stream         in.close();         out.close();         System.out.println("解压缩完成.");       }     }     catch (IOException e) {       e.printStackTrace();     }   } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值