public class FileZip { /** * 压缩多个文件成一个zip文件 * @param srcfile:源文件列表 * @param zipfile:压缩后的文件 */ public static void zipFiles(File[] srcfile, File zipfile){ byte[] buf=new byte[1024]; try { //ZipOutputStream类:完成文件或文件夹的压缩 //不写编码,压缩后有些文件名可能会出现乱码,我当时就是文件名乱码 ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipfile), Charset.forName("GBK")); for(int i=0;i<srcfile.length;i++){ String filename=srcfile[i].getName(); FileInputStream in=new FileInputStream(srcfile[i]); out.putNextEntry(new ZipEntry(filename)); int len; while((len=in.read(buf))>0){ out.write(buf,0,len); } out.closeEntry(); in.close(); } out.close(); System.err.println("压缩完成."); } catch (Exception e) { e.printStackTrace(); } } /** * 解压缩 * @param zipfile:需要解压缩的文件 * @param descDir:解压后的目标目录 */ public static void unZipFiles(File zipfile,String descDir){ try { ZipFile zf=new ZipFile(zipfile); for(Enumeration entries = zf.entries(); entries.hasMoreElements();){ ZipEntry entry=(ZipEntry) entries.nextElement(); String zipEntryName=entry.getName(); InputStream in=zf.getInputStream(entry); OutputStream out=new FileOutputStream(descDir+zipEntryName); byte[] buf1=new byte[1024]; int len; while((len=in.read(buf1))>0){ out.write(buf1,0,len); } in.close(); out.close(); System.out.println("解压缩完成."); } } catch (Exception e) { e.printStackTrace(); } }
java 自带的文件压缩
最新推荐文章于 2023-08-01 14:49:40 发布