Android 解压zip包的实现

android 自身提供了zip包的解压接口

 1  /**
 2      * 解压操作
 3      *
 4      * @param zipFileString 被解压的文件路径 sdcard/0/a/b/test.zip
 5      * @param outPathString 解压的目的路径 sdcard/0/a/b
 6      */
 7     public static void UnZipFolder(String zipFileString, String outPathString) {
 8         FileInputStream fis = null; //文件输入流
 9         ZipInputStream inZip = null; // android提供的zip包输入流
10         try {
11             fis = new FileInputStream(zipFileString); //先读取文件,
12             inZip = new ZipInputStream(fis);//将文件流变成zip输入流
13             ZipEntry zipEntry; //zip实体
14             String szName = "";
15             while ((zipEntry = inZip.getNextEntry()) != null) { //while(true)循环解析
16                 szName = zipEntry.getName();
17                 if (zipEntry.isDirectory()) {// 如果是文件夹
18                     szName = szName.substring(0, szName.length() - 1);
19                     File folder = new File(outPathString + File.separator + szName);
20                     folder.mkdirs();
21                 } else {//如果是文件
22                     File file = new File(outPathString + File.separator + szName);
23                     file.createNewFile();
24                     FileOutputStream out = new FileOutputStream(file);
25                     int length;
26                     byte[] buffer = new byte[1024];
27                     while ((length = inZip.read(buffer)) != -1) {
28                         out.write(buffer, 0, length);
29                         out.flush();
30                     }
31                     if (out != null) {
32                         out.close();
33                     }
34                 }
35             }
36         } catch (FileNotFoundException e) {
37             e.printStackTrace();
38         } catch (IOException e) {42             e.printStackTrace();
43         } catch (Exception e) {47             e.printStackTrace();
48         } finally {
49             if (fis != null) {
50                 try {
51                     fis.close();
52                 } catch (IOException e) {
53                     e.printStackTrace();
54                 }
55             }
56             if (inZip != null) {
57                 try {
58                     inZip.close();
59                 } catch (IOException e) {
60                     e.printStackTrace();
61                 }
62             }
63         }
64
65     }
时间: 2024-08-10 12:01:30

Android 解压zip包的实现的相关文章

工具类-解压zip包和压缩照片

    由于目前系统在服务器上的资料占用空间太大.查了原因之后发现时因为照片没有经过压缩.但是所有照片都在zip包里,比较犯愁.于是写了如下的工具类.主要实现的功能是:扫描一个文件夹下的所有zip包,然后把zip包进行解压.拿到所有的照片.如果照片大于300KB就进行等比例压缩.压缩之后重新打包成zip包.替换掉原来的zip包.     并且可以可有选择是否等比压缩,压缩比例等.代码如下: filetest类: package daoimpl; import java.io.BufferedIn

redhat下安装mysql 5.6.20,解压zip包,查看已经安装过的mysql,卸载rpm安装包,安装mysql服务器端和客户端,修改mysql用户名,登陆mysql,启动关闭mysql

 1 将相关的mysql rpm包上传到redhat上 2  我的电脑是Redhat 6.*版本,所以这里使用上面一个 3  解压zip包 4  安装以下几个rpm MySQL-client-advanced-5.6.20-1.el6.x86_64.rpm MySQL-server-advanced-5.6.20-1.el6.x86_64.rpm 5  查看已经安装过的mysql rpm –aq | grep mysql 结果: mysql-libs-5.1.66-2.el6_3.x86_6

java 解压 zip 包并删除

需求是这样的,  在服务器上有 运营上传的zip 包,内容是用户的照片,我需要做的是 获取这些照片上传,并保存到 数据库. 这里面的 上传照片,保存数据库都不难,主要问题是解压zip包,和删除zip 包,以及 解压后的文件. 之前在网上找的解压的文件的代码,都存在同一个问题,就是解压之后,无法删除 zip 包.查百度说是 资源占用,可是我已经把所有的流都关闭了哇. 我把解压和删除分成两部分用 jUnit  测试:   第一次测试解压,并不删除包:第二次只删除包.我发现,解压方法和删除方法在同一个

mysql5.7.12直接解压zip包,安装过程

MySQL-5.7.12-winx64.zip解压安装方式 1.解压文件到你想要安装的位置.     本人是直接解压到E盘. 2.配置环境变量,在path中放入:E:\mysql-5.7.12-winx64\bin; 3.在E:\mysql-5.7.12-winx64中,新建my.ini,对mysql进行配置. 配置内容可为: -------------------------------------------------------------------------------------

Ubuntu解压zip包中文乱码

解决方法:通过unar 工具解压 步骤一: 安装unar: sudo apt-get install unrar 步骤二: 解压(以test.zip为例):unar test.zip 解压成功,乱码问题解决. 附  unar用法选项: e             解压文件到当前目录  l[t,b]        列出压缩文档信息[technical, bare]  p             打印文件到标准输出  t             测试压缩我俄当  v[t,b]        列出压缩

java 压缩和解压zip包

网上有关压缩和解压zip包的博文一大堆,我随便找了一个,看了看,按照自己的需要修改了一下,与各位分享一下,希望各位大神指正: package com.wangpeng.utill; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import

android zip4j之--解压zip文件并实时显示解压进度

Zip文件是我们经常用到压缩文件格式,android中在进行网络请求大批量数据时,通常会采用传递zip文件,这样做即可以减少网络流量的消耗,加快请求的响应速度,又可以减少对存储空间的要求,所以当我们将zip文件读取回来的时候,如何解压就是一个要解决的问题,虽然java本身提供了zip相关的API,但不是很强大,所以我们采用apache开源组织的zip4j,通过这个jar包可以十分轻松的解压zip文件. 回到项目中去,项目中有个需求是从服务器请求杂志,请求回来后给读者展示,但是由于公司自己做的电子

linux解压zip、bz、bz2、z、gz、tar(解包)

zip: 压缩: zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] 解压: unzip [选项] 压缩文件名.zip 选项:    -x 文件列表 解压缩文件,但不包括指定的file文件.     -v 查看压缩文件目录,但不解压.    -t 测试文

android 从assets目录解压zip到本地sdCard

package com.lapel.activity.html; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import android.content.Context; /** * *