Android|Android -- 压缩与解压文件
我在做一个项目中,工程文件中有一个功能需要很多图片,图片与app一起打包下来的话有30+M,那么我们就考虑另外下载压缩包,我们将图片取出,工程就只有4+M了,哈哈哈哈,呵呵,真恐怖。那么这样就涉及到另外下载压缩包,以及压缩包的解压。
java的工具类里面也包含的有对zip的处理。
代码实现
public class Util { public static final String ZIP_FILENAME = "/data/data/com.yydcdut.unzip/new_ios_7_icons_by_sunkotora-d68qbmo.zip"; //需要解压缩的文件名 public static final String ZIP_DIR = "/data/data/com.yydcdut.unzip/"; //需要压缩的文件夹 public static final String UN_ZIP_DIR = "/data/data/com.yydcdut.unzip/zzip/"; //要解压的文件目录 //上面两个变量好像说反了。 public static final int BUFFER = 1024 ; //缓存大小/** * zip压缩功能. * 压缩baseDir(文件夹目录)下所有文件,包括子目录 * @throws Exception */ public static void zipFile(String baseDir,String fileName) throws Exception{ List fileList=getSubFiles(new File(baseDir)); ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(fileName)); ZipEntry ze=null; byte[] buf=new byte[BUFFER]; int readLen=0; for(int i = 0; i1){ for (int i = 0; i < dirs.length-1; i++) { ret=new File(ret, dirs[i]); } if(!ret.exists()) ret.mkdirs(); ret=new File(ret, dirs[dirs.length-1]); return ret; } return ret; } }
代码分析
先说解压,用ZipFile实例化压缩文件,接下来对ZipFile进行处理。列举出ZipFile中的元素,在用IO操作将ZipFile中的元素转化成文件,如果是目录,则创建目录继续操作。
压缩,运用ZipOutputStream将文件转成IO输出流,再BufferedInputStream输入流写入进去。
我是天王盖地虎的分割线
源代码:http://pan.baidu.com/s/1dD1Qx01
unzip.zip
【Android|Android -- 压缩与解压文件】转载请注明出处:http://www.cnblogs.com/yydcdut
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- android第三方框架(五)ButterKnife
- 第326天
- Shell-Bash变量与运算符
- Android中的AES加密-下
- 逻辑回归的理解与python示例
- 带有Hilt的Android上的依赖注入
- Guava|Guava RateLimiter与限流算法