`
djun100
  • 浏览: 167631 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

android复制assets里的压缩文件到sdcard里并解压

 
阅读更多
private static String DB_PATH = android.os.Environment  
        .getExternalStorageDirectory().getAbsolutePath() + "/";  
private static String DB_NAME = "hello.zip";  
private static final int ASSETS_SUFFIX_BEGIN = 101;  
private static final int ASSETS_SUFFIX_END = 102;  
private static String ASSETS_NAME = "hello.zip"; 

1、复制(大于1M 需要用文件分割器分割)

private void copyBigDataBase() throws IOException {  
        InputStream myInput;  
        String outFileName = DB_PATH + DB_NAME;  
        OutputStream myOutput = new FileOutputStream(outFileName);  
        for (int i = ASSETS_SUFFIX_BEGIN; i < ASSETS_SUFFIX_END + 1; i++) {  
            myInput = this.getAssets().open(ASSETS_NAME + "." + i);  
            byte[] buffer = new byte[1024];  
            int length;  
            while ((length = myInput.read(buffer)) > 0) {  
                myOutput.write(buffer, 0, length);  
            }  
            myOutput.flush();  
            myInput.close();  
        }  
        myOutput.close();  
    }  
2、解压缩(有一级单个目录)
public void unzipFile(String targetPath, String zipFilePath) {  
  
      try {  
          File zipFile = new File(zipFilePath);  
          InputStream is = new FileInputStream(zipFile);  
          ZipInputStream zis = new ZipInputStream(is);  
          ZipEntry entry = null;  
          System.out.println("开始解压:" + zipFile.getName() + "...");  
          while ((entry = zis.getNextEntry()) != null) {  
              String zipPath = entry.getName();  
              try {  
  
                  if (entry.isDirectory()) {  
                      File zipFolder = new File(targetPath + File.separator  
                              + zipPath);  
                      if (!zipFolder.exists()) {  
                          zipFolder.mkdirs();  
                      }  
                  } else {  
                      File file = new File(targetPath + File.separator  
                              + zipPath);  
                      if (!file.exists()) {  
                          File pathDir = file.getParentFile();  
                          pathDir.mkdirs();  
                          file.createNewFile();  
                      }  
  
                      FileOutputStream fos = new FileOutputStream(file);  
                      int bread;  
                      while ((bread = zis.read()) != -1) {  
                          fos.write(bread);  
                      }  
                      fos.close();  
  
                  }  
                  System.out.println("成功解压:" + zipPath);  
  
              } catch (Exception e) {  
                  System.out.println("解压" + zipPath + "失败");  
                  continue;  
              }  
          }  
          zis.close();  
          is.close();  
          System.out.println("解压结束");  
      } catch (Exception e) {  
          e.printStackTrace();  
      }  
  
  }  
参考资料:

【android】assert目录下文件的大小限制http://www.cnblogs.com/Amandaliu/archive/2011/08/22/2149803.html

Android Zip文件解压缩代码




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics