zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Buuctfweb[ACTF2020 新生赛]Include
    Buuctfweb[极客大挑战 2019]Knife
    Buuctfweb[极客大挑战 2019]Secret File
    Buuctfmiscningen
    Buuctfweb[GYCTF2020]Blacklist
    Buuctfmisczip伪加密
    Buuctfweb[GXYCTF2019]Ping Ping Ping
    Buuctfmisc镜子里面的世界
    Buuctfweb[ACTF2020 新生赛]Exec
    转换...
  • 原文地址:https://www.cnblogs.com/xgjblog/p/3912341.html
Copyright © 2011-2022 走看看