您的位置:首页 > 移动开发 > Android开发

android解压缩assets里面的压缩文件到sdcard里面

2016-05-04 13:43 357 查看
public static void unZip(String assetName, String outputDirectory, boolean isReWrite) {

  // 创建解压目标目录

  try {

   File file = new File(outputDirectory);

   // 如果目标目录不存在,则创建

   if (!file.exists()) {

    file.mkdirs();

   }

   // 打开压缩文件

   InputStream inputStream = WLKTApplication.context.getAssets().open(assetName);

   ZipInputStream zipInputStream = new ZipInputStream(inputStream);

   // 读取一个进入点

   java.util.zip.ZipEntry zipEntry = zipInputStream.getNextEntry();

   // 使用1Mbuffer

   byte[] buffer = new byte[1024 * 1024];

   // 解压时字节计数

   int count = 0;

   // 如果进入点为空说明已经遍历完所有压缩包中文件和目录

   while (zipEntry != null) {

    // 如果是一个目录

    if (zipEntry.isDirectory()) {

     file = new File(outputDirectory + File.separator + zipEntry.getName());

     // 文件需要覆盖或者是文件不存在

     if (isReWrite || !file.exists()) {

      file.mkdir();

     }

    } else {

     // 如果是文件

     file = new File(outputDirectory + File.separator + zipEntry.getName());

     // 文件需要覆盖或者文件不存在,则解压文件

     if (isReWrite || !file.exists()) {

      file.createNewFile();

      FileOutputStream fileOutputStream = new FileOutputStream(file);

      while ((count = zipInputStream.read(buffer)) > 0) {

       fileOutputStream.write(buffer, 0, count);

      }

      fileOutputStream.close();

     }

    }

    // 定位到下一个文件入口

    zipEntry = zipInputStream.getNextEntry();

   }

   zipInputStream.close();

  } catch (Exception e) {

  }

 }

注意压缩包,需要时zip格式的,rar不能解压。rar文件,修改为zip也是不能解压的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android