Java实现压缩文件
1. 引入依赖
在项目的pom.xml
文件中添加以下依赖:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commonscompress</artifactId> <version>1.21</version> </dependency>
2. 编写压缩文件的方法
import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveOutputStream; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipFile; import org.apache.commons.compress.utils.IOUtils; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class FileCompressor { public static void main(String[] args) throws IOException { String sourceDirectory = "src/main/resources/files"; String outputZipFile = "src/main/resources/files.zip"; compressDirectory(sourceDirectory, outputZipFile); } /** * 压缩指定目录到ZIP文件 * * @param sourceDirectory 要压缩的目录 * @param outputZipFile 输出的ZIP文件路径 * @throws IOException */ public static void compressDirectory(String sourceDirectory, String outputZipFile) throws IOException { Path sourceDirPath = Paths.get(sourceDirectory); try (FileOutputStream fos = new FileOutputStream(outputZipFile); ArchiveOutputStream zos = new ArchiveStreamFactory().createArchiveOutputStream("zip", fos)) { Files.walk(sourceDirPath).filter(path > !Files.isDirectory(path)).forEach(path > { ZipArchiveEntry zipEntry = new ZipArchiveEntry(sourceDirPath.relativize(path).toString()); try { zos.putArchiveEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path.toFile()))) { IOUtils.copy(bis, zos); } zos.closeArchiveEntry(); } catch (IOException e) { e.printStackTrace(); } }); } } }
3. 使用说明
1、将上述代码添加到项目中。
2、修改sourceDirectory
变量为要压缩的目录路径。
3、修改outputZipFile
变量为输出的ZIP文件路径。
4、运行main
方法,压缩文件将被保存到指定的路径。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。