java学习笔记:使用zip api进行文件解压缩以及不解压直接读取指定文件内容

本文介绍了如何使用Java原生的ZIP API进行文件压缩、解压,以及如何在不解压的情况下直接读取ZIP文件内的指定文件内容。详细讲解了ZipOutputStream用于压缩,ZipFile用于解压,以及不解压读取文件的关键步骤和代码示例。
摘要由CSDN通过智能技术生成

在一个android项目中使用到了zip进行文件的传输,可以大大减少存储空间和传输流量,于是就会涉及到zip文件的加压缩问题。下面将会详细介绍java原生的zip api。先来简单列举一下java中关于zip的api:

一、zip压缩

java通过 ZipOutputStream 对zip文件建立输出流,可以使用以下构造方法:

FileOutputStream fos = new FileOutputStream(outFile);
ZipOutputStream zos = new ZipOutputStream(fos);

建立了对zip文件的输出流之后,我们需要逐个写入需要压缩的文件,通过 ZipOutputStream 的 putNextEntry(ZipEntry e)  方法,可以在建立zip文件内建立需要写入的下一个文件的“入口”。

ZipEntry 可以调用其构造方法  ZipEntry(String name)  为要写入的文件制定名字name,该名字包含此文件相对于zip文件的子目录。

举例如下:

如果我们希望将t.txt文件打包到zip文件中,并且是打包到zip文件中的“dir”文件夹中,那么就需要指定其 ZipEntry 的构造方法的name为 “dir/t.txt”。如果是直接打包到zip文件的一级目录中,那么就只需要指定name为“t.txt”即可。

下面给出一段压缩某个文件到zip的代码:


ze = new ZipEntry(subPath);
zos.putNextEntry(ze);
bis = new BufferedInputStream(new FileInputStream(f));
while (bis.read(data, 0, byteLength) != -1) {
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值