package com.yd.common;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipOp {
/**
* 实现目录内内容压缩
* @param zipFile压缩文件的保存路径
* @param filepath压缩文件目录
*/
public void zip(String zipFile,String filepath) {
try {
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
FileInputStream fis = null;
ZipEntry ze = null;
List<String> fileList = allFile(filepath);
int length = 0;
byte[] b = new byte[1024];
for(int i = 0; i < fileList.size(); i ++){
//System.out.println("filePath: " + fileList.get(i));
File file = new File(fileList.get(i));
fis = new FileInputStream(file);
ze = new ZipEntry(file.getName());
zos.putNextEntry(ze);
while((length = fis.read(b)) != -1){
zos.write(b, 0, length);
}
}
fis.close();
zos.close();
System.out.println("done!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 遍历目录结构,返回文件所对应的文件结构【只是多级遍历】
*/
private List<String> allFile(String path){
List<String> filePaths = new ArrayList<String>();
File file = new File(path);
if(file.isDirectory()){
String[] subFilePaths = file.list();
for(int i = 0; i < subFilePaths.length; i ++){
filePaths.addAll(allFile(path + subFilePaths[i]));//递归
}
}else{
filePaths.add(path);
}
return filePaths;
}
}
分享到:
相关推荐
本文将详细讲解如何使用Java实现将多目录多层级的文件打成ZIP包,以及如何解压这些ZIP包。我们将主要关注`FileUtils.java`这个类,以及依赖的`commons-compress-1.1.jar`库。 `commons-compress-1.1.jar`是Apache ...
本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关知识点。 首先,我们来看ZIP文件格式。ZIP是一种广泛使用的文件压缩格式,其在Java中的处理主要通过`java.util.zip`包。这个包提供了多个类...
java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip...
在Java编程环境中,对目录和文件进行ZIP压缩与解压是一项常见的操作,特别是在处理大量数据或者需要进行文件传输时。本文将深入探讨如何使用Java来实现这一功能。 首先,我们需要了解ZIP文件格式,它是一种广泛使用...
解压缩ZIP文件的过程则相反,需要使用`ZipInputStream`从ZIP文件中读取`ZipEntry`并写入目标目录。以下是一个基本的解压缩方法: 1. 打开ZIP文件的`FileInputStream`。 2. 创建`ZipInputStream`,从输入流中读取ZIP...
在Java编程中,压缩和解压缩ZIP文件是常见的文件处理任务。下面我们将详细讨论如何使用Java标准库中的`java.util.zip`包来实现这一功能。 首先,我们来看压缩ZIP文件的过程。在提供的代码中,使用了`...
5. **代码实现**:在`src`目录中,通常会包含Java源代码文件,如`ZipUtils.java`,其中包含了压缩和解压缩的静态方法。这些方法可能包括`compressFilesWithPassword()`和`unzipWithPassword()`,分别用于压缩和解...
这个包提供了一系列的类,如`ZipOutputStream`用于创建ZIP压缩文件,`ZipInputStream`则用于读取和解压缩ZIP文件。在本教程中,我们将深入探讨如何使用这些工具类来实现ZIP文件的压缩和解压缩。 首先,我们来看如何...
在Java编程中,将多个文件压缩成一个ZIP文件并实现下载是一个常见的任务,尤其是在处理大量数据或文件分发时。这个过程涉及到Java的I/O流、压缩和HTTP响应的使用。下面将详细介绍如何实现这个功能。 首先,我们需要...
Java 实现 Excel 压缩成 Zip 导出 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在 Web 项目中,经常需要将数据导出为 Excel 文件,以便用户可以轻松地查看和编辑数据。然而,当需要导出多个 Excel ...
本篇文章将详细探讨如何使用Java内置的IO流来实现文件夹的zip压缩以及zip压缩包的解压,无需依赖其他的第三方库如Apache Commons IO或JavaZip。 ### 文件夹压缩成ZIP 首先,我们需要理解如何将一个文件夹及其内容...
其中,`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压缩ZIP文件。 1. **压缩文件**: 要将一个或多个文件压缩成ZIP文件,你需要创建一个`ZipOutputStream`实例,并将其链接到一个`...
- **解压缩任务**:使用`unzip`任务可以解压缩Zip文件到指定的目标目录。 - **Ant脚本**:Ant通过XML格式的构建文件来定义任务,这使得整个过程可配置且易于自动化。 在实际应用中,如果你的项目依赖于这两个库,...
本文主要介绍如何使用Java实现文件的ZIP压缩功能,并提供了完整的代码示例。通过学习本文,你可以掌握以下几个知识点: 1. 使用`java.util.zip`包中的类进行文件压缩。 2. 如何创建ZIP输出流并写入文件数据。 3. ...
### Java 实现 ZIP 文件压缩与解压缩 #### 知识点概述 在现代软件开发过程中,数据压缩是一项非常重要的技术,特别是在处理大量数据时。Java 作为一种广泛应用的编程语言,提供了丰富的 API 来支持文件的压缩与解...
在Java后台中,批量下载文件压缩成zip下载可以使用Java的文件输入输出流和zip压缩流来实现。首先,需要在Servlet中获取文件列表,然后使用循环将文件一个个添加到zip文件中,最后下载zip文件到本地桌面。 java批量...
在Java编程中,处理文件压缩和解压是常见的任务,特别是使用ZIP格式。然而,当涉及到包含中文字符的文件或目录时,可能会遇到乱码问题。这个问题主要源于字符编码的不一致,通常需要正确设置字符集来确保中文字符在...
1. **压缩ZIP文件**: 要创建ZIP文件,我们需要使用`ZipOutputStream`。首先,创建一个`FileOutputStream`指向目标ZIP文件,然后通过它实例化`ZipOutputStream`。接着,遍历要压缩的文件列表,为每个文件创建一个`...
使用java的zip压缩库 对文件和文件夹实现压缩
对于解压缩ZIP文件,`ZipFile`类也提供了`extractAll(String outputPath)`方法,可以将ZIP文件解压到指定的目录下。如果ZIP文件被加密,我们需要在解压前提供正确的密码。 ```java String outputFolder = "path/to/...