Android Zip文件解压缩代码

在Android平台中如何实现Zip文件的解压缩功能呢? 因为Android内部已经集成了zlib库,对于英文和非密码的Zip文件解压缩还是比较简单的,下面Android123给大家一个解压缩zip的java代码,可以在Android上任何版本中使用,Unzip这个静态方法比较简单,参数一为源zip文件的完整路径,参数二为解压缩后存放的文件夹。
private static void Unzip(String zipFile, String targetDir) {
   int BUFFER = 4096; //这里缓冲区我们使用4KB,
   String strEntry; //保存每个zip的条目名称

   try {
    BufferedOutputStream dest = null; //缓冲输出流
    FileInputStream fis = new FileInputStream(zipFile);
    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
    ZipEntry entry; //每个zip条目的实例

    while ((entry = zis.getNextEntry()) != null) {

     try {
       Log.i("Unzip: ","="+ entry);
      int count; 
      byte data[] = new byte[BUFFER];
      strEntry = entry.getName();

      File entryFile = new File(targetDir + strEntry);
      File entryDir = new File(entryFile.getParent());
      if (!entryDir.exists()) {
       entryDir.mkdirs();
      }

      FileOutputStream fos = new FileOutputStream(entryFile);
      dest = new BufferedOutputStream(fos, BUFFER);
      while ((count = zis.read(data, 0, BUFFER)) != -1) {
       dest.write(data, 0, count);
      }
      dest.flush();
      dest.close();
     } catch (Exception ex) {
      ex.printStackTrace();
     }
    }
    zis.close();
   } catch (Exception cwj) {
    cwj.printStackTrace();
   }
  }

  上面是Android开发网总结的zip文件解压缩代码,希望你大家有用,需要注意的是参数均填写完整的路径,比如/mnt/sdcard/xxx.zip这样的类型。

转自:http://blog.163.com/itsmallbird@126/blog/static/16913910920113155852688/

转载于:https://www.cnblogs.com/sesexxoo/archive/2012/08/06/6189992.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言指针(1)嵌入式linux

计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编…

最全android Demo

1、BeautifulRefreshLayout-漂亮的美食下拉刷新https://github.com/android-cjj/BeautifulRefreshLayout/tree/BeautifulRefreshForFood2、Material Design-动画风格的选项卡tab切换功能https://github.com/neokree/MaterialTabs3、TwinklingRefreshLayout-支持下拉刷新和上拉加…

网站优化之Ajax优化及相关工具

web2.0大量的ajax的使用,提高了ui交互的效率,但是过度的滥用会带来不少的问题。 ajax使用注意事项: 1 尽量避免使用同步ajax调用。在一些登录的场合常常使用同步调用服务器的登录接口。 同步调用,需要将页面上的所有元素给锁定住&…

MessageQueue Message Looper Handler的解释说明

总结4个关键概念 1、MessageQueue:是一种数据结构,见名知义,就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个MessageQueue数据结构。 创建一个线程的时候,并不会自动创建其MessageQueue。通常使用一个…

C语言中的内存分配

在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。 第1节主要介绍内存管理基本概念,重点介绍C程序中内存的…

强化学习(十七) 基于模型的强化学习与Dyna算法框架

在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Based RL),以及基于模型的强化学习算法框架Dyna。 本篇主要参考了UCL强化学习课…

js如何读取客户端Excel文件

详细见 http://www.oejia.net/blog/2012/08/07/Js_read_xls.html 原理是利用了IE关于Excel的ActiveX插件,所以此功能只支持IE系列浏览器 var tempStr "";var filePath document.all.upfile.value;var oXL new ActiveXObject("Excel.application&qu…

Redis之简单动态字符串sds

转载:https://segmentfault.com/a/1190000012262739 redis在处理字符串的时候没有直接使用以\0结尾的C语言字符串,而是封装了一下C语言字符串并命名为sds(simple dynamic string),在sds.h文件里我们可以看到如下类型定义: typede…

同时使用有线和无线

访问无线的70网段,172.20.70.104 本地无线IP route add 172.20.70.0 mask 255.255.255.0 172.20.70.104 metric 1 访问无线的50网段,172.20.70.104 本地无线IP route add 172.20.50.0 mask 255.255.255.0 172.20.70.104 metric 2 转载于:https://www.cnb…

假期第一次编程总结(改二)

7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2&#xff1…

high-speed A/D performance metrics and Amplifie...

2019独角兽企业重金招聘Python工程师标准>>> High-Speed A/D performance metrics 在高速情况下,主要考虑信号参数的频率范围、失真和噪声。During system definition,setting time 、 acquisition time、static precision-related&#xff0…

Redis之整数集合intset

intset是Redis集合的底层实现之一,当存储整数集合并且数据量较小的情况下Redis会使用intset作为set的底层实现。当数据量较大或者集合元素为字符串时则会使用dict实现set。 intset将整数元素按顺序存储在数组里,并通过二分法降低查找元素的时间复杂度。数…

场景编辑器的草案

Jojoushi场景编辑器 整个脚本的演示和编辑以点击事件为基本的单元,一次点击事件的生命期是:玩家点击一次鼠标到下一次有效的点击鼠标之间的这段时间。 1.显示场景 显示模型存在的场景,可以通过上下左右案件在场景中漫游。 2&…

c++学习书籍推荐《超越C++标准库:Boost库导论》下载

《超越C标准库Boost库导论》不仅介绍了Boost库的功能、使用方法及注意事项,而且还深入讨论了Boost库的设计理念、解决问题的思想和技巧以及待处理的问题。因此,本书是一本了解Boost库并探索其机理的实用手册。 百度云及其他网盘下载地址:点我…

批量替换 MySQL 指定字段中的字符串

批量替换 MySQL 指定字段中的字符串 批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多&#x…

WebCombo

原文来自方案网 http://www.fanganwang.com/Product-detail-item-1162.html,欢迎转载。 关键字: WebCombo.NET 是一款基于AJAX技术,处于行业领先地位的Combo box控件。它提供众多高级的数据输入功能及其独特的技术。通过其内置的数据过滤功能…

Redis之压缩列表ziplist

Redis是基于内存的nosql,有些场景下为了节省内存redis会用“时间”换“空间”。 ziplist就是很典型的例子。 ziplist是list键、hash键以及zset键的底层实现之一(3.0之后list键已经不直接用ziplist和linkedlist作为底层实现了,取而代之的是qu…

动态链表与静态链表

一. 静态链表 在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素的内存地址. #define MAXSIZE 100; typedef struct{ ElemType data; in…

Mysql索引机制B+Tree

1、问题引入    有一个用户表,为了查询的效率,需要基于id去构建索引。构建索引我们需要考虑两个方面的问题,1个是查询的效率,1个是索引数据的存储问题。该表的记录需要支持百万、千万、甚至上亿的数据量,如果将索引…

GLSL学习笔记

GLSL语言内置的变量,包括内置的顶点属性(attribute)、一致变量(uniform)、易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章…