Java中文件的压缩与解压(一)

本人工作中设计到需要使用Java后台对文件进行压缩操作,而Java中通过ZipOutputStream和ZipInputStream实现对一个或多个文件的压缩与解压。压缩时文件时,创建zip输出流,并在流中添加zip条目,用流把文件的内容写入压缩文件中。解压时,创建zip输入流,并分别创建文件夹和zip条目对应的文件,再用流把zip条目中的内容写入个文件中。以下分别展示了如何对一个文件和多个文件实现压缩与解压。

文件的压缩:

1)压缩操作:

public class  MyZipOut {

private static void zipOut(String name) throws IOException {

        // 根据原文件名得到zip格式的文件名
        String zipName = name.substring(0, name.indexOf("."))
                         + ".zip";
        // 根据原文件名得到zip条目的名称,即文件在压缩文件中的名字
        String zeName = name.substring(name.indexOf("\\")+1);

        // 创建文件输入流 、 文件输出流、 zip输出流
        FileInputStream fis = new FileInputStream(name);
        FileOutputStream fos = new FileOutputStream(zipName);
        ZipOutputStream zos = new ZipOutputStream(fos);

        // 创建zip条目,并将其添加至zip输出流中
        ZipEntry ze = new ZipEntry(zeName);
        zos.putNextEntry(ze);
        //zos.putNextEntry(new ZipEntry(System.currentTimeMillis() + ""));

        // 压缩文件
        byte[] buf = new byte[1024];
        int len;
        while ((len = fis.read(buf)) != -1) {
            zos.write(buf,0,len);
            //zos.closeEntry();
        }

        // 关闭流,只有在关闭流后,文件内容才能写入成功
        zos.close();
        fis.close();

    }

//main中进行调用测试

public static void main(String[] args) {
        String name = "D:\\扫码打印测试说明文档.docx"; //原文件路径
        try {
            System.err.println("---压缩文件开始---");
            zipOut(name);
            System.out.println("---压缩文件完成---");
        } catch (IOException e) {
            System.out.println("文件流异常信息-----:"+e);
            System.out.println("压缩文件时出错!");
        }
    }

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值