文件的压缩流和解压流

本文介绍了Java中使用压缩流和解压流处理文件的方法,包括为何使用压缩文件、压缩文件的步骤(通过ZipOutputStream创建压缩包并复制文件)以及解压文件的步骤(使用ZipInputStream读取并复制到指定位置)。内容详细阐述了如何在Java中进行文件压缩和解压缩的实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、文件的压缩流和解压流

1、为什么需要使用压缩文件

文件压缩使用场景: 在文件上传或下载中需要操作多个文件时,如果一个一个复制需要花较长时间,而且比较繁琐,javaAPI提供一种压缩/解压文件方式,可以将多个文件打包成一个文件(.zip)

包: java.util.zip

常用类: ZipEntry: 表示压缩文件中的每一个实体文件

​ ZipFile: 表示压缩文件对象

​ ZipOutputStream: 表示压缩文件输出流,用于将普通文件写出到zip文件中

​ ZipInputStream: 表示解压文件的输入流,用于读zip文件中的每一个实体ZipEntry

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c81vT4Ii-1604883598475)(assets/4.png)]

这里的abcd.txt就是一个ZipEntry

2、压缩文件步骤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-48FroStS-1604883598479)(assets/压缩.png)]

​ a、创建需要压缩文件的输入流(InputStream )

​ b、创建压缩包所在的路径,并指定压缩文件名,同时创建ZipOutputStream输出流

​ c、将文件对象 添加到 ZipOutputStream中的实体中(也可以指定压缩后的实体名称)

​ d、文件复制

​ e、关闭流

 public static void main(String[] args) throws IOException {
   
         // 1、创建文件对象
        File file = new File("d:/小众网站.txt");
        // 2、创建文件的输入流
        FileInputStream fis  = new FileInputStream(file);
        // 3、创建文件压缩流(输出流)
        ZipOutputStream zos = new ZipOutputStream(
                new FileOutputStream("d:/myfile.zip"));

        // 给压缩包中添加文件,并可自定义文件名
        zos.putNextEntry(new ZipEntry("小众网站.txt "));
        // 给压缩包设置注释
        zos.setComment("这是压缩包的注释。。。。");
        // 文件复制
        int len = 0;
        byte [] b = new byte[1024];
        while( (len = fis.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值