千家信息网

Android怎么实现不解压直接读取zip包

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"Android怎么实现不解压直接读取zip包",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么实现不解压直接读取zi
千家信息网最后更新 2026年11月03日Android怎么实现不解压直接读取zip包

这篇文章主要讲解了"Android怎么实现不解压直接读取zip包",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么实现不解压直接读取zip包"吧!

文本:

zip包目录结构:res/txt/data.json

文件sd卡路径:android.os.Environment.getExternalStorageDirectory() + "/res.zip"

public static String readDataFile(String file) throws Exception {  //截取路径的文件名 res  String fileName = file.substring(file.length() - 9, file.length() - 4);  ZipFile zf = new ZipFile(file);  InputStream in = new BufferedInputStream(new FileInputStream(file));  ZipInputStream zin = new ZipInputStream(in);  ZipEntry ze;  while ((ze = zin.getNextEntry()) != null) {   if (ze.isDirectory()) {    //Do nothing   } else {    if (ze.getName().equals(fileName + "/txt/data.json")) {     BufferedReader br = new BufferedReader(       new InputStreamReader(zf.getInputStream(ze)));     String line;     while ((line = br.readLine()) != null) {      return line;     }     br.close();    }   }  }  zin.closeEntry();  return ""; }

上面方法比较简单没什么好说的,大家理解就行,有点需要注意的就是在判断是否是想要读取的文件的时候,这里的路径是以zip的压缩目录为根目录做比较。也就是if (ze.getName().equals(fileName + "/txt/data.json")) 这句话中的fileName 当前值为res。最后返回读取的内容String就完事了。

图片和xml文件的读取都差不多,下面直接贴出代码了。

图片:

zip包目录结构:res/pic/haha.png

文件sd卡路径:android.os.Environment.getExternalStorageDirectory() + "/res.zip"

public static Bitmap readGuidePic(String file, String ResId) throws Exception {  String fileName = file.substring(file.length() - 9, file.length() - 4);  ZipFile zf = new ZipFile(file);  InputStream in = new BufferedInputStream(new FileInputStream(file));  ZipInputStream zin = new ZipInputStream(in);  ZipEntry ze;  while ((ze = zin.getNextEntry()) != null) {   if (ze.isDirectory()) {    //Do nothing   } else {    Log.i("tag", "file - " + ze.getName() + " : " + ze.getSize() + " bytes");    if (ze.getName().equals(fileName + "/pic/haha.png")) {     InputStream is = zf.getInputStream(ze);     Bitmap bitmap = BitmapFactory.decodeStream(is);     return bitmap;    }   }  }  zin.closeEntry();  return null; }

xml文件:

zip包目录结构:res/xml/app.xml

文件sd卡路径:android.os.Environment.getExternalStorageDirectory() + "/res.zip"

public static InputStream readAppFile(String file) throws IOException {  String fileName = file.substring(file.length() - 9, file.length() - 4);  ZipFile zf = new ZipFile(file);  InputStream in = new BufferedInputStream(new FileInputStream(file));  ZipInputStream zin = new ZipInputStream(in);  ZipEntry ze;  while ((ze = zin.getNextEntry()) != null) {   if (ze.isDirectory()) {    //Do nothing   } else {    if (ze.getName().equals(fileName + "/xml/app.xml")) {     InputStream inputStream = zf.getInputStream(ze);     return inputStream;    }   }  }  zin.closeEntry();  return null; }

感谢各位的阅读,以上就是"Android怎么实现不解压直接读取zip包"的内容了,经过本文的学习后,相信大家对Android怎么实现不解压直接读取zip包这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 路径 目录 内容 结构 学习 图片 就是 好说 差不多 没什么 也就是 代码 思路 情况 文件名 文本 文章 方法 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 互联网科技工作委员会 科技互联网技术 北京互联网科技公司 易互联网科技有限公司 亿账通互联网科技 互联网科技实习生岗位职责 互联网科技中介 互联网企业和科技型企业 洛阳昕诺飞互联网科技有限公司 乌苏新华互联网科技做什么的 本届互联网博览会上的黑科技 互联网科技创新的路径 佛山市拉法互联网科技有限公司 怎样加入科技互联网 伍佰万互联网科技怎么赚钱 上海万顺科技互联网有限公司招聘 长沙渺峰互联网科技有限公司 互联网科技和医药行业 第三届互联网大会安防黑科技 奇酷互联网科技公司 上海卓越科技 互联网 深圳卡尔迅互联网科技有限公司怎么样 南山科技园互联网公司有哪些 厦门千工互联网科技有限公司 互联网科技和信息 互联网科技的全部知识 本届互联网大会上的黑科技 中国新注册互联网科技 互联网企业和网络科技有限公司
0