转载地址:http://jondev.net/articles/Unzipping_Files_with_Android_%28Programmatically%29

1、文件解压缩


import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream;  /**  *  * @author jon  */ public class Decompress {   private String _zipFile;   private String _location;    public Decompress(String zipFile, String location) {     _zipFile = zipFile;     _location = location;      _dirChecker("");   }    public void unzip() {     try  {       FileInputStream fin = new FileInputStream(_zipFile);       ZipInputStream zin = new ZipInputStream(fin);       ZipEntry ze = null;       while ((ze = zin.getNextEntry()) != null) {         Log.v("Decompress", "Unzipping " + ze.getName());          if(ze.isDirectory()) {           _dirChecker(ze.getName());         } else {           FileOutputStream fout = new FileOutputStream(_location + ze.getName());           for (int c = zin.read(); c != -1; c = zin.read()) {             fout.write(c);           }            zin.closeEntry();           fout.close();         }                }       zin.close();     } catch(Exception e) {       Log.e("Decompress", "unzip", e);     }    }    private void _dirChecker(String dir) {     File f = new File(_location + dir);      if(!f.isDirectory()) {       f.mkdirs();     }   } } 


2、文件压缩

import android.util.Log; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;   public class Compress {   private static final int BUFFER = 2048;    private String[] _files;   private String _zipFile;    public Compress(String[] files, String zipFile) {     _files = files;     _zipFile = zipFile;   }    public void zip() {     try  {       BufferedInputStream origin = null;       FileOutputStream dest = new FileOutputStream(_zipFile);        ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));        byte data[] = new byte[BUFFER];        for(int i=0; i < _files.length; i++) {         Log.v("Compress", "Adding: " + _files[i]);         FileInputStream fi = new FileInputStream(_files[i]);         origin = new BufferedInputStream(fi, BUFFER);         ZipEntry entry = new ZipEntry(_files[i].substring(_files[i].lastIndexOf("/") + 1));         out.putNextEntry(entry);         int count;         while ((count = origin.read(data, 0, BUFFER)) != -1) {           out.write(data, 0, count);         }         origin.close();       }        out.close();     } catch(Exception e) {       e.printStackTrace();     }    }  } 





更多相关文章

  1. Android获取SDcard目录及创建文件夹;
  2. Android中遇到问题:file.delete()不能删除文件
  3. [android]system.img文件的打包和解包
  4. android打开文件及打开方式(打开程序列表)
  5. Android ndk开发之在c文件里打印log
  6. Android 8.0 Tv 修改以太网ip地址 掩码 网关 DNS及DHCP和静态切
  7. android播放音乐文件代码
  8. Android得到SD卡文件夹大小以及删除文件夹操作
  9. 通用android studio gradle 文件(电商商家版,两个gradle不同)

随机推荐

  1. Android开发遇到的问题----自定义Recycle
  2. android Application的生命周期
  3. Android之SQLiteDatabase使用与特殊情况
  4. Android(安卓)下载服务器上的文件
  5. Android(安卓)的背光控制
  6. Android(安卓)中常见bug 总结
  7. android studio 配置checkstyle
  8. Activity starting window and how to sp
  9. android EditText 只能输入无法删除的解
  10. Android(安卓)menu 使用初步