读取zip文件内容(非解压缩)

来源:互联网 发布:js为input输入框赋值 编辑:程序博客网 时间:2024/06/08 04:17

本案例情景为android读取assets(或res/raw)下的一个zip压缩文件,并读出其中的数据,但并非是压缩SD卡中。

献给伸手党的福音,直接上代码:

public void unZip() throws IOException{//通过assets读取//InputStream inputStream = getAssets().open("aaa.zip");//通过raw资源文件读取InputStream inputStream = getResources().openRawResource(R.raw.aaa);ZipInputStream zipInputStream = new ZipInputStream(inputStream);// 读取一个进入点ZipEntry zipEntry = zipInputStream.getNextEntry();while (zipEntry != null){String name = zipEntry.getName();StringBuffer sb = new StringBuffer("");byte[] buffer = new byte[1024];int count = 0;while ((count = zipInputStream.read(buffer)) > 0){String str = new String(buffer);str = str.trim();sb.append(str);}String value = sb.toString();map.put(name,value);// 定位到下一个文件入口zipEntry = zipInputStream.getNextEntry();}zipInputStream.close();}

各位非伸手党,估计能看到这里了,咱们现在可以来看看这段代码,查过各种代码的朋友们看着上面的代码肯定很眼熟,是的,和其他解压缩代码几乎一样,而不同的是对读入流采用了不同的操作。

zip的操作基本流程: zip——》inputstream——》file(解压缩 流程)

               zip——》inputstream——》String或其他定义数据格式 (数据转存或处理)。


   有人可能会考虑解压缩的效率,我这里解压一个zip包有43个文件(比较小),平均耗时50ms,效率还是很可观的。    




0 0
原创粉丝点击