为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

解压与压缩zip及apk包

2017-12-07 9页 doc 28KB 15阅读

用户头像

is_594905

暂无简介

举报
解压与压缩zip及apk包解压与压缩zip及apk包 package util; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.CRC32; import java.util.zip.CheckedOutputStream; import java.util.zip.ZipEntry; import ...
解压与压缩zip及apk包
解压与压缩zip及apk包 package util; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.CRC32; import java.util.zip.CheckedOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipUtilsCompress { //public static final String EXT = ".zip"; public static final String EXT = ".apk"; private static final String BASE_DIR = ""; // ?ûºÅ"/"ÓÃÀ?×?ΪÄ?Â??êÊ?ÅÐ?Ï?û private static final String PATH = "/"; private static final int BUFFER = 1024; public static void compress(File srcFile) throws Exception { String name = srcFile.getName(); String basePath = srcFile.getParent(); //String destPath = basePath + name + EXT; String destPath = basePath + File.separator + name + EXT; compress(srcFile, destPath); } public static void compress(File srcFile, File destFile) throws Exception { // ?ÔÊä?öÎÄ?þ×öCRC32Ð?Ñé CheckedOutputStream cos = new CheckedOutputStream(new FileOutputStream( destFile), new CRC32()); ZipOutputStream zos = new ZipOutputStream(cos); compress(srcFile, zos, BASE_DIR); zos.flush(); zos.close(); } public static void compress(File srcFile, String destPath) throws Exception { compress(srcFile, new File(destPath)); } private static void compress(File srcFile, ZipOutputStream zos, String basePath) throws Exception { if (srcFile.isDirectory()) { compressDir(srcFile, zos, basePath); } else { compressFile(srcFile, zos, basePath); } } public static void compress(String srcPath) throws Exception { File srcFile = new File(srcPath); compress(srcFile); } public static void compress(String srcPath, String destPath) throws Exception { File srcFile = new File(srcPath); compress(srcFile, destPath); } private static void compressDir(File dir, ZipOutputStream zos, String basePath) throws Exception { File[] files = dir.listFiles(); // ?????ÕÄ?Â? if (files.length < 1) { ZipEntry entry = new ZipEntry(basePath + dir.getName() + PATH); zos.putNextEntry(entry); zos.closeEntry(); } for (File file : files) { // µÝ?éÑ?Ëõ compress(file, zos, basePath + dir.getName() + PATH); } } private static void compressFile(File file, ZipOutputStream zos, String dir) throws Exception { String dirName = dir + file.getName(); String[] dirNameNew = dirName.split("/"); StringBuffer buffer = new StringBuffer(); if(dirNameNew.length > 1){ for(int i = 1; i < dirNameNew.length;i++){ buffer.append(PATH); buffer.append(dirNameNew[i]); } }else{ buffer.append(PATH); } ZipEntry entry = new ZipEntry(buffer.toString().substring(1)); //ZipEntry entry = new ZipEntry(dir + file.getName()); System.out.println("******" + dir + file.getName()); zos.putNextEntry(entry); BufferedInputStream bis = new BufferedInputStream(new FileInputStream( file)); int count; byte data[] = new byte[BUFFER]; while ((count = bis.read(data, 0, BUFFER)) != -1) { zos.write(data, 0, count); } bis.close(); zos.closeEntry(); } public static void main(String[] args) { // TODO Auto-generated method stub // Ñ?ËõÎÄ?þ // try { // ZipUtilsCompress.compress("d:\\test\\test_imsi1.apk"); // System.out.println("Ñ?ËõÎÄ?þ?É????"); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // Ñ?ËõÄ?Â? try { ZipUtilsCompress.compress("d:\\ff"); System.out.println("Ñ?ËõÄ?Â??É????"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } package util; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.CRC32; import java.util.zip.CheckedInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class ZipUtilsDecompress { // public static final String EXT = ".zip"; // private static final String BASE_DIR = ""; private static final String PATH = File.separator; private static final int BUFFER = 1024; public static void decompress(String srcPath) throws Exception { File srcFile = new File(srcPath); decompress(srcFile); } public static void decompress(File srcFile) throws Exception { String basePath = srcFile.getParent(); decompress(srcFile, basePath); } public static void decompress(File srcFile, File destFile) throws Exception { CheckedInputStream cis = new CheckedInputStream(new FileInputStream( srcFile), new CRC32()); ZipInputStream zis = new ZipInputStream(cis); decompress(destFile, zis); zis.close(); } public static void decompress(File srcFile, String destPath) throws Exception { decompress(srcFile, new File(destPath)); } public static void decompress(String srcPath, String destPath) throws Exception { File srcFile = new File(srcPath); decompress(srcFile, destPath); } private static void decompress(File destFile, ZipInputStream zis) throws Exception { ZipEntry entry = null; while ((entry = zis.getNextEntry()) != null) { // ÎÄ?þ String dir = destFile.getPath() + File.separator + entry.getName(); File dirFile = new File(dir); // ÎÄ?þ?ì?é fileProber(dirFile); if (entry.isDirectory()) { dirFile.mkdirs(); } else { decompressFile(dirFile, zis); } zis.closeEntry(); } } private static void fileProber(File dirFile) { File parentFile = dirFile.getParentFile(); if (!parentFile.exists()) { // µÝ?éÑ?ÕÒÉÏ??Ä?Â? fileProber(parentFile); parentFile.mkdir(); } } private static void decompressFile(File destFile, ZipInputStream zis) throws Exception { BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(destFile)); int count; byte data[] = new byte[BUFFER]; while ((count = zis.read(data, 0, BUFFER)) != -1) { bos.write(data, 0, count); } bos.close(); } public static void main(String[] args){ // TODO Auto-generated method stub // ?âÑ?µ?Ö???Ä?Â? try { ZipUtilsDecompress.decompress("d:\\test_imsi222.apk", "d:\\ff"); //ZipUtils.decompress("d:\\test\\test.zip", "d:\\test\\ff"); System.out.println("?âÑ?ËõÎÄ?þµ?Ö???Ä?Â??É????"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // ?âÑ?µ?µ?Ç?Ä?Â? // try { // ZipUtilsDecompress.decompress("d:\\test\\test_imsi222.apk"); // System.out.println("?âÑ?ËõÎÄ?þµ?µ?Ç?Ä?Â??É????"); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } } }
/
本文档为【解压与压缩zip及apk包】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索