Android文件压缩和解压

Java代码

package com.maidong.utils;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.UnsupportedEncodingException;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Enumeration;

import java.util.zip.ZipEntry;

import java.util.zip.ZipException;

import java.util.zip.ZipFile;

import java.util.zip.ZipOutputStream;

import org.apache.http.protocol.HTTP;

public class ZipUtils {

private static final int BUFF_SIZE = 1024 * 1024; // 1M Byte

/**

* 批量压缩文件(夹)

*

* @param resFileList

*            要压缩的文件(夹)列表

* @param zipFile

*            生成的压缩文件

* @throws IOException

*             当压缩过程出错时抛出

*/

public static void zipFiles(Collection resFileList, File zipFile) throws IOException {

ZipOutputStream zipout = null;

try {

zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile), BUFF_SIZE));

for (File resFile : resFileList) {

zipFile(resFile, zipout, "");

}

} finally {

if (zipout != null)

zipout.close();

}

}

/**

* 批量压缩文件(夹)

*

* @param resFileList

*            要压缩的文件(夹)列表

* @param zipFile

*            生成的压缩文件

* @param comment

*            压缩文件的注释

* @throws IOException

*             当压缩过程出错时抛出

*/

public static void zipFiles(Collection resFileList, File zipFile, String comment) throws IOException {

ZipOutputStream zipout = null;

try {

zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile), BUFF_SIZE));

for (File resFile : resFileList) {

zipFile(resFile, zipout, "");

}

zipout.setComment(comment);

} finally {

if (zipout != null)

zipout.close();

}

}

/**

* 解压缩一个文件

*

* @param zipFile

*            压缩文件

* @param folderPath

*            解压缩的目标目录

* @throws IOException

*             当解压缩过程出错时抛出

*/

public static void upZipFile(File zipFile, String folderPath) throws ZipException, IOException {

File desDir = new File(folderPath);

if (!desDir.exists()) {

desDir.mkdirs();

}

ZipFile zf = new ZipFile(zipFile);

InputStream in = null;

OutputStream out = null;

try {

for (Enumeration> entries = zf.entries(); entries.hasMoreElements();) {

ZipEntry entry = ((ZipEntry) entries.nextElement());

in = zf.getInputStream(entry);

String str = folderPath + File.separator + entry.getName();

str = new String(str.getBytes("8859_1"), HTTP.UTF_8);

File desFile = new File(str);

if (!desFile.exists()) {

File fileParentDir = desFile.getParentFile();

if (!fileParentDir.exists()) {

&nb补充:移动开发 , Android ,

android文件压缩库,Android文件压缩和解压相关推荐

  1. Android UI 字体库(.ttf文件)的使用 -- xml方式

    Android 8.0(API 级别 26)引入了"XML 中的字体"这项新功能, 可以在 res/font/ 文件夹中添加 font 文件. 要访问字体资源,请使用 @font/ ...

  2. android java静态库,Android make 中变量记录

    转换mk文件到bp文件 $ out/soong/host/linux-x86/bin/androidmk Android.mk > Android.bp 编译不同类型的模块 编译成 Native ...

  3. android调用日历库,Android学习教程之日历库使用(15)

    本教程为大家分享了Android日历库的使用方法,供大家参考,具体内容如下 MainActivity.java代码: package siso.weekv; import android.conten ...

  4. android移植第三方库,android移植第三方库

    本文介绍如何使用 Android NDK(r7) 设置 Android 本地代码编译工具链,如何根据 Makefile 编写 Android.mk,并以 ffmpeg(0.8.5) 为例子介绍如何使用 ...

  5. SRA文件的下载(prefetch)和解压SRA文件(fastq-dump)

    sra文件下载方式 NCBI-SRA和EBI-ENA数据库 SRA数据库: Sequence Read Archive:隶属NCBI (National Center for Biotechnolog ...

  6. android开发静态库,Android:如何正确链接我自己的静态库?

    我有一个用C ++编写的Android项目,并且在链接阶段存在问题. 代码放在一些静态库中,这些库应该链接在一起. 我在网上发现了很多关于这个主题的问题和答案,其中大多数建议将我的库LOCAL_STA ...

  7. android数据库工具库,android 数据库工具种MyDbHelper

    当前位置:我的异常网» 数据库 » android 数据库工具种MyDbHelper android 数据库工具种MyDbHelper www.myexceptions.net  网友分享于:2013 ...

  8. android后台文件下载库,android中如何下载文件并显示下载进度

    最近开发中遇到需要下载文件的问题,对于一般的下载来说不用考虑断点续传,不用考虑多个线程,比如下载一个apk之类的,这篇文章讨论的就是这种情形. 这里主要讨论三种方式:AsyncTask.Service ...

  9. android 使用so库,Android 使用SO库

    使用Android Studio调用so 开发. 创建项目 省略...... 创建jniLibs目录 在main中创建一个jniLibs文件夹 look,然后把so拷贝进去: 创建JNI 的API:c ...

最新文章

  1. Flask发送邮件,最基础
  2. 圆周率π的计算历程及各种脑洞大开的估计方法
  3. android聚焦时如何给控件加边框,edittext设置获得焦点时的边框颜色
  4. c 语言多参数函数,C/C++实现多参数函数编程
  5. python的变量与注释
  6. HDU 1071 The area
  7. 变压器的分类_变压器的作用
  8. 中国IT实验室--Visual C++编程电子书专题下载
  9. Spring Boot配置文件yml格式详解
  10. html空间登录页面制作,免费HTML网页空间(每月200 GB 流量托管静态网页超简单)...
  11. Bandicam录制视频
  12. win11解决打开文档延迟
  13. 同花顺没签三方要赔钱才能拿回三方!!!!
  14. 夏季旅游度假照片展示短视频AE模板
  15. 乱码html文档怎么恢复,乱码word文档怎么恢复
  16. Drf从入门到精通一(API接口、Postman、Restful规范、序列化、快速使用drf、CBV源码分析)
  17. mysql5.5手册读书日记(2)
  18. 新版Iconfont-阿里巴巴矢量图标库支持三种引用方式
  19. 图像处理(三)——中国传统工艺画风格的图像转换应用
  20. 莫比乌斯函数莫比乌斯反演

热门文章

  1. 一、UNIX发展过程
  2. 51单片机 使用IIC转接板驱动LCD1602
  3. Domain Specific Compiling: 领域编译器发展的前世今生 • 面向AI的编译技术
  4. MySQL 三万字精华总结,吊打面试官绰绰有余(建议收藏)
  5. impress.js 中文版 学习
  6. 转,HashSet与ArrayList性能测试
  7. TCPIP完整的一套基础介绍
  8. 怎样上传超过20G的大文件到网盘?
  9. 超宽屏幕比例_变身超宽显示器!21:9分辨率修改攻略
  10. 【自用】EasyExcel 表格模板下载及导入