iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java压缩文件夹最实用简单的方法
  • 162
分享到

Java压缩文件夹最实用简单的方法

Java压缩文件夹 2022-11-13 19:11:09 162人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Java 有一个很好的类库来处理 zip 文件。这些类在 java.util.zip 包中可用。以下 Java 示例程序展示了如何使用 java.util.zip 类创建整个文件夹的

Java 有一个很好的类库来处理 zip 文件。这些类在 java.util.zip 包中可用。以下 Java 示例程序展示了如何使用 java.util.zip 类创建整个文件夹的 zip。我们使用Files.walkFileTree递归地浏览目录树,然后将每个文件添加到新创建的 zip 文件中。请注意,此示例仅适用于 Java 1.7 及更高版本。

import java.io.FileOutputStream;
import java.io.IOException;
import java.NIO.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; 
// Source code to create a zip file from a given folder
// This example program recursively adds all files in the folder
// Works only with Java 7 and above
public class ZipFolder {
    public static void main(String[] args) throws Exception {
        ZipFolder zf = new ZipFolder();         
        // Use the following paths for windows
        //String folderToZip = "c:\\demo\\test";
        //String zipName = "c:\\demo\\test.zip";         
        // linux/Mac paths
        String folderToZip = "/Users/jj/test";
        String zipName = "/Users/jj/test.zip";
        zf.zipFolder(Paths.get(folderToZip), Paths.get(zipName));
    } 
    // Uses java.util.zip to create zip file
    private void zipFolder(Path sourceFolderPath, Path zipPath) throws Exception {
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipPath.toFile()));
        Files.walkFileTree(sourceFolderPath, new SimpleFileVisitor() {
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                zos.putNextEntry(new ZipEntry(sourceFolderPath.relativize(file).toString()));
                Files.copy(file, zos);
                zos.closeEntry();
                return FileVisitResult.CONTINUE;
            }
        });
        zos.close();
    }
}

在 linux/mac 中,您可以使用以下命令测试新创建的 zip 文件

解压-t test.zip

实例扩展

//方法1:
public void unZip(String zipfile) throws IOException {
  //检查是否是zip文件,并判断文件是否存在
  checkFileName(zipfile);
  long startTime = System.currentTimeMillis();
  File zfile=new File(zipfile);
  //获取待解压文件的父路径
  String Parent=zfile.getParent()+"/";
  FileInputStream fis=new FileInputStream(zfile);
  Charset charset = Charset.forName("GBK");//默认UTF-8
// CheckedInputStream cis = new CheckedInputStream(fis,new CRC32());
  ZipInputStream zis = new ZipInputStream(fis,charset);// 输入源zip路径
  ZipEntry entry=null;
  BufferedOutputStream bos=null;
  while ((entry=zis.getNextEntry())!=null) {
    if (entry.isDirectory()) {
    File filePath=new File(Parent+entry.getName());
    //如果目录不存在,则创建
    if (!filePath.exists()) {
      filePath.mkdirs();
    }
    }else{
    FileOutputStream fos=new FileOutputStream(Parent+entry.getName());
    bos=new BufferedOutputStream(fos);
    byte buf[] = new byte[1024];
    int len;
    while ((len = zis.read(buf)) != -1) {
      bos.write(buf, 0, len);
    }
    zis.closeEntry();
    //关闭的时候会刷新
    bos.close();
    }
  }
  zis.close();
  long endTime = System.currentTimeMillis();
  System.out.println("解压完成!所需时间为:"+(endTime-startTime)+"ms");
// System.out.println("校验和:"+cis.getChecksum().getValue());
  }

  private void checkFileName(String name) {
  //文件是否存在
  if (!new File(name).exists()) {
    System.err.println("要解压的文件不存在!");
    System.exit(1);
  }
  // 判断是否是zip文件
  int index = name.lastIndexOf(".");
  String str=name.substring(index+1);
  if (!"zip".equalsIgnoreCase(str)) {
    System.err.println("不是zip文件,无法解压!");
    System.exit(1);
  } 
    }

到此这篇关于Java压缩文件夹最实用简单的方法的文章就介绍到这了,更多相关Java压缩文件夹的方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java压缩文件夹最实用简单的方法

本文链接: https://www.lsjlt.com/news/170825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java压缩文件夹最实用简单的方法
    Java 有一个很好的类库来处理 zip 文件。这些类在 java.util.zip 包中可用。以下 Java 示例程序展示了如何使用 java.util.zip 类创建整个文件夹的...
    99+
    2022-11-13
    Java 压缩文件夹
  • 【Java 基础篇】Java Zip压缩:简化文件和文件夹的压缩操作
    文章目录 导言一、Zip压缩简介二、压缩文件1. 创建压缩文件2. 压缩多个文件3. 压缩文件夹 三、解压缩文件1、解压缩文件 总结 导言 在Java开发中,经常会遇到需要对文件和文件夹进行压缩和解压缩的需求。J...
    99+
    2023-08-17
    java python php
  • ubuntu压缩文件夹的方法是什么
    在Ubuntu中,可以使用以下方法来压缩文件夹: 使用zip命令:可以使用以下命令将文件夹压缩为一个zip文件: zip -r ...
    99+
    2024-04-02
  • Java 如何实现解压缩文件和文件夹
    目录一 前言 二 压缩文件 2.1 压缩多个文件 2.2 压缩文件或文件树 2.3 借助文件访问器压缩 三 解压文件 四 总结 一 前言 项目开发中,总会遇到解压缩文件的时候。比如...
    99+
    2024-04-02
  • 如何隐藏文件夹 教你最简单的隐藏文件夹方法
    想要隐藏文件夹的时候怎么办呢,有时候就想有点自己的秘密文件,但又怕让别人觉察到,小编就有这样的经历,就算用自己的电脑,想弄些东西,但难免也会有朋友要借来玩,这个时候就很怕朋友看到,那就囧了,以下小编总结了下方法,有很简单...
    99+
    2023-05-19
    隐藏文件夹
  • Java实现多文件压缩打包的方法
    本文实例讲述了Java实现多文件压缩打包的方法。分享给大家供大家参考,具体如下:package com.biao.test;import java.io.File;import java.io.FileInputStream;import ...
    99+
    2023-05-31
    java 文件 压缩
  • Ubuntu压缩和解压缩RAR文件的方法
    本篇内容主要讲解“Ubuntu压缩和解压缩RAR文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu压缩和解压缩RAR文件的方法”吧!方法很简单,一条命令就搞定了:sudo ap...
    99+
    2023-06-13
  • Python实现批量压缩文件/文件夹zipfile的使用
    目录【Python压缩文件夹】导入“zipfile”模块【python压缩文件】导入“zipfile”模块补充zipfile是python里用来做zip格式编码的压缩和解压缩的,由于...
    99+
    2024-04-02
  • 基于Java实现简单的时序数据压缩算法
    目录背景整数VarintZigZagDelta2Simple8b浮点数有损压缩无损压缩字符串标签型非标签型背景 今年在公司内部主导了两个的行情数据系统的构建,两者均使用到了常见的时序...
    99+
    2024-04-02
  • 怎么用java实现压缩文件
    你可以使用Java的ZipOutputStream类来压缩文件。下面是一个简单的例子: import java.io.File; i...
    99+
    2023-10-23
    java
  • Java实现将文件或者文件夹压缩成zip的详细代码
    最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类。    &...
    99+
    2024-04-02
  • Linux下文件的压缩和解压方法
    本篇内容介绍了“Linux下文件的压缩和解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!gzip功能说明:解压文件。语  法:gzip...
    99+
    2023-06-12
  • Pythonshutil模块实现文件的裁剪、压缩与解压缩的方法
    目录 利用 shutil 实现文件的裁剪(移动、重命名) 文件的删除 利用 shutil 实现文件的压缩 利用 shutil 实现文件的解压缩python之shutil模块shuti...
    99+
    2023-01-29
    Python shutil模块 Python文件的裁剪压缩与解压缩
  • java不解压直接读取压缩包中文件的实现方法
    前言 最近写了个上传压缩包,将压缩包中的图片保存的接口,所以翻了翻网上文件流操作的博客,总结了一个不用解压,直接读取文件的方法 上代码 @RequestMapping(valu...
    99+
    2024-04-02
  • 在Linux上压缩文件的方法
    本篇内容介绍了“在Linux上压缩文件的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在 Linux 上有不少用于压缩文件的命令。最新最...
    99+
    2023-06-16
  • C#压缩或解压rar、zip文件方法实例
    前言 为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar、zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩...
    99+
    2024-04-02
  • Linux压缩文件夹的tar.gz命令怎么用
    这篇文章将为大家详细讲解有关Linux压缩文件夹的tar.gz命令怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 打包是指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在...
    99+
    2023-06-28
  • 如何用java给一个文件夹打成压缩包?
    import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;...
    99+
    2023-09-05
    java zip
  • 压缩MySQL数据文件的方法
    这篇文章主要介绍“压缩MySQL数据文件的方法”,在日常操作中,相信很多人在压缩MySQL数据文件的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”压缩MySQL数据文件的...
    99+
    2024-04-02
  • C++ minizip的简单使用,zip文件的创建、读取、修改、密码压缩、4G以上大文件压缩。
            兄弟姐妹们好,深夜党又来记录枯燥的编程生活了。今天给大家带来的是minizip库,一个解压和压缩文件的开源代码库,如题目所示的结构来介绍。你可以在下面的链接搜索到minizip库: http://www.winimage...
    99+
    2023-09-01
    linux 运维 服务器 minizip c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作