Android_JarZip压缩和解压文件
本文资料来自《android开发权威指南》
AndroidSDK中提供了java.util.jar和java.util.zip包中的若干类和接口来完成。
压缩文件基本步骤:
1、创建一个JarOutputStream或ZipOutputStream对象,分别用来生成jar或zip文件。
2、创建了(jar|zip)OutputStream对象,还不能直接向输出流写入数据。由于压缩文件也需要使用文件名和路径来标识被压缩的文 件,因此,需要为每一个要压缩的文件创建一个JarEntry或ZipEntry对象。每一个(jar|zip)Entry对象代表一个被压缩的文件,并 通过(jar|zip)Entry对象指定被压缩文件在压缩包中的文件名和路径。
3、调用(jar|zip)OutputStream.putNextEntry方法设置当前打开的(jar|zip)Entry对象。
4、向(jar|zip)OutputStream对象写入数据。
5、调用(jar|zip)OutputStream.closeEntry方法关闭当前打开的(jar|zip)Entry对象。如果还有待压缩的文件,回到第二步。
解压缩文件的步骤:
1、创建一个JarInputStream或ZipInputStream对象。该对象一般通过FileInputStream对象指定要解压的文件。
2、使用(jar|zip)InputStream。getNextEntry方法枚举压缩包中所有的文件。如果getNextEntry方法返回null,表示压缩文件已经被处理完。
3、通过(jar|zip)Entry.getName方法获得文件压缩后的路径和文件名(为了保证解压后的文件名与压缩前的是一致的,当然,也可以使用其他文件名),并使用FileOUtputStream对象指定已解压的文件。
4、向FileOutputStream对象输出已解压的数据流。
5、调用(jar|zip)Entry.closeEntry方法关闭当前打开的(jar|zip)Entry对象。如果还有有解压的文件,返回到第二步继续执行。
源代码实例:
http://download.csdn.net/download/zlfxy/5098434
Android_JarZip压缩和解压文件的更多相关文章
- C#压缩和解压文件
这里用两种方法实现C#压缩和解压文件 1.使用System.IO.Compression名称空间下的相关类(需引用 System.IO.Compression.FileSystem和System.IO ...
- 【转】Java压缩和解压文件工具类ZipUtil
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- 压缩和解压文件:tar gzip bzip2 compress(转)
tar[必要参数][选择参数][文件] 压缩:tar -czvf filename.tar.gz targetfile解压:tar -zxvf filename.tar.gz参数说明: -c 建立新的 ...
- linux 压缩和解压文件
一.压缩:20120715文件下面所有的文件 如下: tar -zcvf 20120715.tar.gz 20120715* 二.解压20120715.tar.gz压缩包 如下: tar -xzvf ...
- 使用GZipStream压缩和解压文件
最近做了一个用.NET里的GZipStream压缩解压缩gzip文件的小程序. GZipStream在System.IO.Compression底下,使用起来也很简单.虽然GZipStream是Str ...
- C# 压缩和解压文件(SharpZipLib)
先从网上下载ICSharpCode.SharpZipLib.dll类库 将文件或文件夹压缩为zip,函数如下 /// <summary> /// 压缩文件 /// </summary ...
- c#调用WinRAR软件压缩和解压文件
using System; using System.Collections.Generic; using System.Web; using System.IO; using System.Linq ...
- linux压缩和解压文件命令
tar 解包:tar zxvf filename.tar 打包:tar czvf filename.tar dirnamegz命令 解压1:gunzip filename.gz 解压2:gzi ...
- metro压缩和解压文件
在1.zip中增加一张新图片StorageFile jpg = await KnownFolders.PicturesLibrary.GetFileAsync("1.jpg"); ...
随机推荐
- js流程控制与函数
流程控制 1.条件语句 分支结构 单向分支 if (条件表达式){ code... } 双向分支 if (条件表达式){ code... }else{ code... } 多向分支 if (条件表达式 ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 8) Clustering & Dimensionality Reduction
本周主要介绍了聚类算法和特征降维方法,聚类算法包括K-means的相关概念.优化目标.聚类中心等内容:特征降维包括降维的缘由.算法描述.压缩重建等内容.coursera上面Andrew NG的Mach ...
- ThreadPoolExecutor(线程池)源码分析
1. 常量和变量 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); // 高3位为线程池的运行状态,低29 ...
- ARM地址重映射机制
转:http://blog.csdn.net/yuanzhangmei1/article/details/8395028 ARM体系结构中,系统上电或复位后,处理器将从地址0x0处取第一条指令,因此, ...
- jQuery:validate内置验证的使用
(1)required:true 必输字段(2)remote:"check.php" 使用ajax方法调用check.php验证输入值(3)email:true 必须输入正确格式的 ...
- selenium+python自动化88-批量操作循环点击报错:Element not found in the cache - perhaps the page has changed since it was looked up
前言 selenium定位一组元素,批量操作循环点击的时候会报错:Element not found in the cache - perhaps the page has changed since ...
- ActionError,ActionMessage推荐
尽管Struts框架供给了管用的失常处理机制,但不能保证处理所有的讹谬,这时Struts框架会把讹谬抛给Web容器,在默认情形下Web容器会向用户博览器直接归来原始消息.万一想避免直接让用户看到这些原 ...
- Android 开发之 ---- bootloader (LK)
LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统. LK ...
- [Python爬虫] 之十三:Selenium +phantomjs抓取活动树会议活动数据
抓取活动树网站中会议活动数据(http://www.huodongshu.com/html/index.html) 具体的思路是[Python爬虫] 之十一中抓取活动行网站的类似,都是用多线程来抓取, ...
- apache2.4 的安装
Apache2.4 安装包下载地址 http://httpd.apache.org/docs/current/platform/windows.html#down 选择ApacheHaus 进入后 这 ...