• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android下文件的压缩和解压(Zip格式)

Android下文件的压缩和解压(Zip格式)

作者:w2_2015的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-23

w2_2015的博客通过本文主要向大家介绍了android解压zip文件,android下载zip文件,androidresedit.zip,android zip解压,android zip等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Zip文件结构

ZIP文件结构如下图所示, File Entry表示一个文件实体,一个压缩文件中有多个文件实体。

文件实体由一个头部和文件数据组,Central Directory由多个File header组成,每个File header都保存一个文件实体的偏移,文件最后由End of central directory结束。

用到的类

ZipFile

此类用于从 ZIP 文件读取条目ZipEntry,在解压时用到

ZipEntry

此类用于表示 ZIP 文件条目

ZipOutputStream

此类为以 ZIP 文件格式写入文件实现输出流过滤器

Enumeration

实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素,在解压缩时会用到

CheckedOutputStream

需要维护写入数据校验和的输出流。校验和可用于验证输出数据的完整性。

CRC32

可用于计算数据流的 CRC-32 的类

压缩流程

首先要封装出一个ZipOutputStream:

ZipOutputStream zipOutputStream = new ZipOutputStream(new CheckedOutputStream(new FileOutputStream(file),new CRC32()));

有了ZipOutputStream后,要压缩一个文件,就先在输出流加入一个ZipEntry,然后获取需要压缩的文件输入流,然后再输出:

注意最后要刷新和关闭输出流

zipOutputStream.flush();
zipOutputStream.close();

当然这只是单个文件的压缩,我们压缩文件时经常会压缩整个文件夹,所以还需要遍历整个文档,针对目录和文件分别作出判断:

if (fileSrc.isDirectory()) {
            File[] files = fileSrc.listFiles();

            name = name+"/";
            zipOutputStream.putNextEntry(new ZipEntry(name));  // 建一个文件夹
            System.out.println("目录名: "+name);

            for (File f : files) {
                zip(zipOutputStream,name+f.getName(),f);
                System.out.println("目录: "+name+f.getName());
            }
}

解压缩流程

解压缩就是压缩的逆过程,其过程就是从压缩文件中获取ZipEntry,获取其输入流,将其输出到指定位置:

这也是单个文件的解压缩,解压缩文件夹只需遍历ZipFile,判断ZipEntry是目录还是文件,具体操作不再详解,可到文末的源码中查看。

END

本文参考:
Android 解压zip文件你知道多少?

源码:
https://github.com/xiaoniu/AndroidZipFile

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android下文件的压缩和解压(Zip格式)

相关文章

  • 2017-05-26Android Bitmap占用内存计算公式,androidbitmap
  • 2017-05-26Android UI学习笔记 之 使用ViewPager实现导航
  • 2017-05-26Android Studio发布到Jcenter
  • 2017-05-26Android开发笔记(5)——方法调用(基础),android笔记
  • 2017-05-26开启新的activity获取它的返回值,activity获取返回值
  • 2017-05-26Xamarin +vs2015 Android 开发GPS loaction 返回 null 小结,xamarinvs2015
  • 2017-05-26EventBus的使用,EventBus使用
  • 2017-05-26Android中BroadcastReceiver的两种注册方式(静态和动态)详解,broadcastreceiver
  • 2017-05-26Webview内存泄漏解决办法1,webview泄漏
  • 2017-05-26Android开发学习——搭建开发环境,android搭建

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • DataPicker以及TimePicker显示时间和日期(屏幕上显示),datepicker日期格式
    • andriod读写XML,andriodxml
    • Android应用程序内存泄漏介绍
    • 仿Android印象笔记底部导航栏
    • Android 手机卫士--9patch图,
    • android环境下的即时通讯,android即时通讯
    • Android开发技巧——大图裁剪
    • Android SDK目录及版本号区别
    • 酷欧天气(CoolWeather)应用源码,coolweather
    • 浅谈Android 通过ADB Wireless无线调试应用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有