1、压缩
package test; import java.io.*; import java.util.zip.*; public class ZipCompressing { private int k = 1; // 定义递归次数变量 private void zip(String zipFileName, File inputFile) throws Exception { System.out.println("压缩中..."); ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName)); BufferedOutputStream bo = new BufferedOutputStream(out); zip(out, inputFile, inputFile.getName(), bo); bo.close(); out.close(); // 输出流关闭 System.out.println("压缩完成"); } private void zip(ZipOutputStream out, File f, String base, BufferedOutputStream bo) throws Exception { // 方法重载 if (f.isDirectory()) { File[] fl = f.listFiles(); if (fl.length == 0) { out.putNextEntry(new ZipEntry(base + "/")); // 创建zip压缩进入点base System.out.println(base + "/"); } for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + "/" + fl[i].getName(), bo); // 递归遍历子文件夹 } System.out.println("第" + k + "次递归"); k++; } else { out.putNextEntry(new ZipEntry(base)); // 创建zip压缩进入点base System.out.println(base); FileInputStream in = new FileInputStream(f); BufferedInputStream bi = new BufferedInputStream(in); int b; while ((b = bi.read()) != -1) { bo.write(b); // 将字节流写入当前zip目录 } bi.close(); in.close(); // 输入流关闭 } } /** * 测试 * * @param args */ public static void main(String[] args) { ZipCompressing book = new ZipCompressing(); try { book.zip("G:\\暂存.zip", new File("G:\\暂存")); } catch (Exception e) { e.printStackTrace(); } } }
2、解压
package test; import java.io.*; import java.util.zip.*; public class ZipDecompressing { public static void main(String[] args) { long startTime = System.currentTimeMillis(); try { ZipInputStream Zin = new ZipInputStream(new FileInputStream("G:\\暂存.zip"));// 输入源zip路径 BufferedInputStream Bin = new BufferedInputStream(Zin); String Parent = "G:"; // 输出路径(文件夹目录) File Fout = null; ZipEntry entry; try { while ((entry = Zin.getNextEntry()) != null && !entry.isDirectory()) { Fout = new File(Parent, entry.getName()); if (!Fout.exists()) { (new File(Fout.getParent())).mkdirs(); } FileOutputStream out = new FileOutputStream(Fout); BufferedOutputStream Bout = new BufferedOutputStream(out); int b; while ((b = Bin.read()) != -1) { Bout.write(b); } Bout.close(); out.close(); System.out.println(Fout + "解压成功"); } Bin.close(); Zin.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } long endTime = System.currentTimeMillis(); System.out.println("耗费时间: " + (endTime - startTime) + " ms"); } }
相关推荐
JAVA压缩解压JAVA压缩解压JAVA压缩解压JAVA压缩解压JAVA压缩解压
java压缩解压文件
java压缩解压ZIP
java 压缩解压
用Java压缩解压ZIP文件,将利用java.util.zip 包中提供的类来实现压缩和解压zip 格式文件的功能。当然,本例在功能上完全没有Winzip 等成熟的压缩软件那么强,也不能做的很强,本例仅仅是演示如何来使用java.util....
用Java语言实现LZW压缩解压文件,实现的效率较高,而且压缩时间也不是很长
JAVA 文件夹压缩解压,并使用AES加密源代码,带ant.jar包
java写的压缩解压缩工具 可以压缩文件文件夹,可以直接运行
安卓端java代码实现对文件的压缩与解压
NULL 博文链接:https://zhenyong.iteye.com/blog/1576148
用Java做的一个压缩加密小程序,压缩采用霍夫曼编码,加密用RSA算法
NULL 博文链接:https://rensanning.iteye.com/blog/1836727
NULL 博文链接:https://zhaoshunxin.iteye.com/blog/1336238
Java压缩及解压tar、tar.z格式文件, 需要apache的包ant-1.7.1.jar 这个自己去搜索下下载
java程序,压缩与解压rar文件. java程序,压缩与解压rar文件.
java 压缩/解压 .zip/.rar/.tar 文件,大家一起讨论,学习 已实现zip压缩/解压,rar解压
java zip 压缩解压例子
java解压zlib和压缩zlib的jar