Android zip文件压缩与解压

本文介绍了在Android开发中如何进行zip文件的压缩与解压,包括使用ZipEntry和ZipOutputStream进行压缩,以及解压的实现步骤。同时推荐了开源框架AndroidUtilCode,提供了详细的代码实例。
摘要由CSDN通过智能技术生成

Android zip文件压缩与解压

Android开发中偶尔需要用到zip文件的压缩与解压,正好公司项目需要用到,趁此机会特意总结了下,分享给大家,也是对我学习Android的记录。

zip压缩

Android中的zip压缩主要用到两个类:ZipEntry,ZipOutputStream,ZipEntry类用于保存一些被压缩文件的信息,如文件名、修改时间等等,部分源码如下:

class ZipEntry implements ZipConstants, Cloneable {
   
    String name;        // entry name
    long time = -1;     // modification time (in DOS time)
    long crc = -1;      // crc-32 of entry data
    long size = -1;     // uncompressed size of entry data
    long csize = -1;    // compressed size of entry data
    int method = -1;    // compression method
    int flag = 0;       // general purpose flag
    byte[] extra;       // optional extra field data for entry
    String comment;     // optional comment string for entry
    // Android-changed: Add dataOffset for internal use.
    long dataOffset;

而ZipOutputStream是目标zip文件的输出流。zip压缩一共分为三步:

  1. 获取相应的ZipOutputStream;
  2. 判断是否是文件夹

​ (1)是:递归;

​ (2)否:根据文件路径、文件名等获取相应的ZipEntry,然后将该文件写入ZipOutputStream;

  1. 关闭相应的输出流;

    /**
     * 压缩文件
     * @param srcFile 待压缩的源文件
     * @param rootPath 源文件的根路径
     * @param zos Zip输出流
     * @param comment 备注
     * @return 压缩成功返回true
     * @throws IOException
     */
    private static boolean zipFile(final File srcFile,String rootPath,final ZipOutputStream zos,final String comment) throws IOException {
         
            rootPath = rootPath + (isSpace(rootPath) ? "" : File.separator) + srcFile.getName();
            if (srcFile.isDirectory()) {
         
                File[] fileList = srcFile.listFiles();
                if (fileList == null 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值