- 浏览: 3558940 次
- 性别:
- 来自: 大连
博客专栏
-
使用Titanium Mo...
浏览量:38337
-
Cordova 3.x入门...
浏览量:608165
-
常用Java开源Libra...
浏览量:683362
-
搭建 CentOS 6 服...
浏览量:89977
-
Spring Boot 入...
浏览量:402544
-
基于Spring Secu...
浏览量:69870
-
MQTT入门
浏览量:92037
文章分类
最新评论
-
afateg:
阿里云的图是怎么画出来的?用什么工具?
各云服务平台的架构图 -
cbn_1992:
博主,采用jdbctoken也就是数据库形式之后,反复点击获取 ...
Spring Security OAuth2 Provider 之 数据库存储 -
ipodao:
写的很是清楚了,我找到一份中文协议:https://mcxia ...
MQTT入门(6)- 主题Topics -
Cavani_cc:
还行
MQTT入门(6)- 主题Topics -
fexiong:
博主,能否提供完整源码用于学习?邮箱:2199611997@q ...
TensorFlow 之 构建人物识别系统
Zip4j是一个Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件。默认采用UTF-8编码,所以支持中文,同时也支持密码,而且支持多种压缩算法。Zt-ZIP也不错,有兴趣的可以试试。
版本:zip4j_1.3.1.jar
http://www.lingala.net/zip4j/(需FQ)
压缩
1、文件压缩
2、设置密码
--标准
--AES
3、文件夹压缩
4、将文件压缩到指定文件夹中
5、往ZIP中添加文件
6、分割压缩文件
7、创建ZIP流
8、从ZIP中删除文件
9、获取ZIP中文件一览
解压
1、解压所有文件
2、解压所有文件到流
3、解压单个文件
谢谢啦 看了看例子 实现了
版本:zip4j_1.3.1.jar
http://www.lingala.net/zip4j/(需FQ)
压缩
1、文件压缩
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test1.zip"); ArrayList filesToAdd = new ArrayList(); filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); filesToAdd.add(new File("c:\\ZipTest\\文件.doc")); filesToAdd.add(new File("c:\\ZipTest\\파일.xls")); filesToAdd.add(new File("c:\\ZipTest\\ファイル.ppt")); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); zipFile.addFiles(filesToAdd, parameters);
2、设置密码
--标准
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test2.zip"); ArrayList filesToAdd = new ArrayList(); filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); filesToAdd.add(new File("c:\\ZipTest\\文件.doc")); filesToAdd.add(new File("c:\\ZipTest\\파일.xls")); filesToAdd.add(new File("c:\\ZipTest\\ファイル.ppt")); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // Set password parameters.setEncryptFiles(true); parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD); parameters.setPassword("test123!"); zipFile.addFiles(filesToAdd, parameters);
--AES
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test3.zip"); ArrayList filesToAdd = new ArrayList(); filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); filesToAdd.add(new File("c:\\ZipTest\\文件.doc")); filesToAdd.add(new File("c:\\ZipTest\\파일.xls")); filesToAdd.add(new File("c:\\ZipTest\\ファイル.ppt")); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // Set password parameters.setEncryptFiles(true); parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES); parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); parameters.setPassword("test123!"); zipFile.addFiles(filesToAdd, parameters);
3、文件夹压缩
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test4.zip"); String folderToAdd = "c:\\ZipTest"; ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); zipFile.addFolder(folderToAdd, parameters);
4、将文件压缩到指定文件夹中
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test5.zip"); ArrayList filesToAdd = new ArrayList(); filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); filesToAdd.add(new File("c:\\ZipTest\\文件.doc")); filesToAdd.add(new File("c:\\ZipTest\\파일.xls")); filesToAdd.add(new File("c:\\ZipTest\\ファイル.ppt")); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); parameters.setRootFolderInZip("test2/"); zipFile.addFiles(filesToAdd, parameters);
5、往ZIP中添加文件
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test1.zip"); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setFileNameInZip("文件2.doc"); parameters.setSourceExternalStream(true); InputStream is = new FileInputStream("c:\\ZipTest\\文件2.doc"); zipFile.addStream(is, parameters); is.close();
6、分割压缩文件
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test7.zip"); ArrayList filesToAdd = new ArrayList(); filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); filesToAdd.add(new File("c:\\ZipTest\\文件.doc")); filesToAdd.add(new File("c:\\ZipTest\\파일.xls")); filesToAdd.add(new File("c:\\ZipTest\\ファイル.ppt")); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // SplitLenth has to be greater than 65536 bytes // zipFile.createZipFileFromFolder() zipFile.createZipFile(filesToAdd, parameters, true, 65536);
7、创建ZIP流
ArrayList filesToAdd = new ArrayList(); filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); filesToAdd.add(new File("c:\\ZipTest\\文件.doc")); filesToAdd.add(new File("c:\\ZipTest\\파일.xls")); filesToAdd.add(new File("c:\\ZipTest\\ファイル.ppt")); ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(new File("c:\\ZipTest\\test8.zip"))); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // Set password parameters.setEncryptFiles(true); parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES); parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); parameters.setPassword("test123!"); for (int i = 0; i < filesToAdd.size(); i++) { File file = (File)filesToAdd.get(i); outputStream.putNextEntry(file,parameters); if (file.isDirectory()) { outputStream.closeEntry(); continue; } InputStream inputStream = new FileInputStream(file); byte[] readBuff = new byte[4096]; int readLen = -1; while ((readLen = inputStream.read(readBuff)) != -1) { outputStream.write(readBuff, 0, readLen); } outputStream.closeEntry(); inputStream.close(); } outputStream.finish(); outputStream.close();
8、从ZIP中删除文件
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test1.zip"); //删除指定文件 zipFile.removeFile("sample.txt"); //删除第一个文件 if (zipFile.getFileHeaders() != null && zipFile.getFileHeaders().size() > 0) { zipFile.removeFile((FileHeader)zipFile.getFileHeaders().get(0)); } else { System.out.println("This cannot be demonstrated as zip file does not have any files left"); }
9、获取ZIP中文件一览
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test5.zip"); List fileHeaderList = zipFile.getFileHeaders(); for (int i = 0; i < fileHeaderList.size(); i++) { FileHeader fileHeader = (FileHeader)fileHeaderList.get(i); System.out.println("****File Details for: " + fileHeader.getFileName() + "*****"); System.out.println("Name: " + fileHeader.getFileName()); System.out.println("Compressed Size: " + fileHeader.getCompressedSize()); System.out.println("Uncompressed Size: " + fileHeader.getUncompressedSize()); System.out.println("CRC: " + fileHeader.getCrc32()); System.out.println("************************************************************"); }
解压
1、解压所有文件
//方法一 ZipFile zipFile = new ZipFile("c:\\ZipTest\\test1.zip"); zipFile.extractAll("c:\\ZipTest1"); //方法二 ZipFile zipFile2 = new ZipFile("c:\\ZipTest\\test2.zip"); if (zipFile2.isEncrypted()) { zipFile2.setPassword("test123!"); } List fileHeaderList = zipFile2.getFileHeaders(); for (int i = 0; i < fileHeaderList.size(); i++) { FileHeader fileHeader = (FileHeader)fileHeaderList.get(i); zipFile2.extractFile(fileHeader, "c:\\ZipTest2\\"); }
2、解压所有文件到流
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test2.zip"); if (zipFile.isEncrypted()) { zipFile.setPassword("test123!"); } List fileHeaderList = zipFile.getFileHeaders(); for (int i = 0; i < fileHeaderList.size(); i++) { FileHeader fileHeader = (FileHeader)fileHeaderList.get(i); if (fileHeader != null) { String outFilePath = "c:\\ZipTest3\\" + System.getProperty("file.separator") + fileHeader.getFileName(); File outFile = new File(outFilePath); if (fileHeader.isDirectory()) { outFile.mkdirs(); continue; } File parentDir = outFile.getParentFile(); if (!parentDir.exists()) { parentDir.mkdirs(); } ZipInputStream is = zipFile.getInputStream(fileHeader); OutputStream os = new FileOutputStream(outFile); int readLen = -1; byte[] buff = new byte[4096]; while ((readLen = is.read(buff)) != -1) { os.write(buff, 0, readLen); } os.close(); os = null; is.close(); is = null; UnzipUtil.applyFileAttributes(fileHeader, outFile); System.out.println("Done extracting: " + fileHeader.getFileName()); } else { System.err.println("fileheader is null. Shouldn't be here"); } }
3、解压单个文件
ZipFile zipFile = new ZipFile("c:\\ZipTest\\test2.zip"); if (zipFile.isEncrypted()) { zipFile.setPassword("test123!"); } zipFile.extractFile("文件.doc", "c:\\ZipTest4\\");
- Zip4jTest.zip (123.8 KB)
- 下载次数: 397
- zip4j_1.3.2.zip (121.3 KB)
- 下载次数: 178
- zip4j_examples_1.3.2.zip (150.6 KB)
- 下载次数: 150
- zip4j_src_1.3.2.zip (100.4 KB)
- 下载次数: 123
评论
10 楼
look_at_you
2016-05-06
读取文件时,按行读取,每一行的第一个字符都取不到
9 楼
funly1234
2016-04-05
楼主,这个不能把单个文件导出成流,非要遍历获取到文件头才可以吗?
8 楼
山川尽美
2015-06-11
rensanning 写道
@山川尽美
使用 parameters.setRootFolderInZip("test2/"); 来设置你要添加到的文件夹。
使用 parameters.setRootFolderInZip("test2/"); 来设置你要添加到的文件夹。
谢谢啦 看了看例子 实现了
7 楼
rensanning
2015-06-11
@山川尽美
使用 parameters.setRootFolderInZip("test2/"); 来设置你要添加到的文件夹。
使用 parameters.setRootFolderInZip("test2/"); 来设置你要添加到的文件夹。
6 楼
山川尽美
2015-06-10
往ZIP中添加文件
楼主 这个是添加到压缩文件目录下,我想添加到压缩目录的某个文件夹下怎么弄啊?
不会再压缩文件下创建文件夹。
求解答 谢谢啦!
楼主 这个是添加到压缩文件目录下,我想添加到压缩目录的某个文件夹下怎么弄啊?
不会再压缩文件下创建文件夹。
求解答 谢谢啦!
5 楼
xianlaioy
2014-07-21
中文文件用zip4j压缩,WinRAR解压的时候乱码。
4 楼
dzh535006103
2014-04-02
3 楼
dzh535006103
2014-04-02
ops :
2 楼
SE_XiaoFeng
2013-07-19
这个好玩. 我就喜欢java里各种各样的功能.
1 楼
永恒的GG
2013-04-07
谢谢分享!!!!!
发表评论
-
Web API分页
2018-11-13 13:38 1587(一)分页类型 逻辑分页(客户端分页):从数据库将所有记录查询 ... -
JAXB实例入门
2017-06-09 10:17 1807JAXB(Java Architecture for XML ... -
Java Web项目中的Event
2017-06-05 09:42 1699(1)Servlet的事件和监听器 *** Servle ... -
关于Java SPI
2017-05-04 12:07 2059SPI:Service Provider Interface ... -
Jackson实例入门
2017-05-03 12:55 1731Jackson:Java平台的JSON解析器。 版本: ja ... -
为什么https被redirect成了http?
2016-11-14 09:35 7986全站HTTPS并不是配置证书CA,改改路径URL那么简单! ... -
简化Java代码
2016-10-09 11:25 1327样板代码Boilerplate Code的 ... -
Java Web Project based on Spring
2016-09-28 11:21 1062基于Spring开发Web项目的标配Library。 工具 ... -
Eclipse Scrapbook快速测试Java代码
2016-09-09 15:12 1348Scrapbook是Eclipse提供的特 ... -
Java爬取 百度图片&Google图片&Bing图片
2016-08-04 09:54 7642先看看抓取的结果。 抓关键字“美女”的百度图片: 抓关键字 ... -
学习Java容易混淆的一概念
2016-05-13 11:01 1716基础篇 (1)== vs equals() ... -
20年Java发展历程(1995-2015)
2015-03-25 21:58 2441Java语言作为现在最流行的编程语言之一,它已经经历了整整20 ... -
Java命令行选项解析之Commons-CLI & Args4J & JCommander
2014-11-27 12:09 22611熟悉Linux命令的都知道几乎所有程序都会提供一些命令行选项。 ... -
Java调用Native API之JNA
2014-11-10 12:09 7859Java调用C/C++的Native API一般采用JNI(J ... -
Java执行SSH/SCP之JSch
2014-08-27 17:17 11610JSch (Java Secure Channel)是纯Jav ... -
GC日志分析
2014-07-18 08:54 2888GC:Garbage Collection 垃圾回收 (1) ... -
Java元组类型之javatuples
2014-05-20 10:58 27106关于方法的返回值,经常需要返回2个值或多个值的一个序列,比如数 ... -
Java 8 之 反编译Lambda表达式(CFR)
2014-04-14 09:34 6603CFR(Class File Reader) - anoth ... -
Java 8 之 Optional类
2014-04-08 14:38 2995在Java中,null代表一个不存在的对象,如果对它进行操作就 ... -
Java 8 之 Lambda表达式
2014-04-01 09:14 16236Java 8历时2年8个月,这次升级是继Java 5之后对Ja ...
相关推荐
java压缩解压ZIP
在Java编程环境中,处理文件的压缩与解压是常见的任务,尤其在数据传输或存储时。本篇文章将详细探讨如何使用Java内置的IO流来实现文件夹的zip压缩以及zip压缩包的解压,无需依赖其他的第三方库如Apache Commons IO...
用Java压缩解压ZIP文件,将利用java.util.zip 包中提供的类来实现压缩和解压zip 格式文件的功能。当然,本例在功能上完全没有Winzip 等成熟的压缩软件那么强,也不能做的很强,本例仅仅是演示如何来使用java.util....
在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对ZIP文件格式的理解。本文将深入探讨如何使用Java实现这一功能,同时也会提及`UnZip.java`和`UnZip2.java`这两个文件可能包含的实现...
1. **zip4j库**:`zip4j-1.3.2.jar`是一个用Java编写的库,它提供了方便的API来处理Zip文件。以下是一些关键功能: - **压缩文件和目录**:你可以通过创建一个`ZipFile`对象,并调用`addFiles()`或`addFolder()`...
`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压ZIP文件。为了添加密码保护,我们需要在创建`ZipOutputStream`时设置一个密码。 1. **密码保护**:在压缩过程中,可以使用`ZipEntry`对象来...
本文将深入探讨如何使用Java来解压ZIP格式的压缩包,并提供相关的源码参考。 首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件的基本工具。在ZIP格式的压缩包处理中,我们主要会用到`...
### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....
本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关知识点。 首先,我们来看ZIP文件格式。ZIP是一种广泛使用的文件压缩格式,其在Java中的处理主要通过`java.util.zip`包。这个包提供了多个类...
NULL 博文链接:https://zhenyong.iteye.com/blog/1576148
本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...
在Java编程中,处理文件压缩和解压是常见的任务,特别是使用ZIP格式。然而,当涉及到包含中文字符的文件或目录时,可能会遇到乱码问题。这个问题主要源于字符编码的不一致,通常需要正确设置字符集来确保中文字符在...
总结来说,"java Zip压缩解压"涉及了Java标准库中的`java.util.zip`包,用于创建和读取ZIP文件;Apache Ant作为构建工具,可能用于自动化压缩和解压过程;而JUnit则用于编写和运行测试,确保代码的正确实现。在实际...
压缩文件方法 该方法需要引用zip4j的jar文件 单个文件、多个文件压缩 /** * 使用给定密码压缩指定文件或文件夹到指定位置. * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者""....
《使用zip4j进行Java加密压缩与解压详解》 在Java编程中,处理文件的压缩和解压是一项常见的任务,而zip4j库提供了一种便捷的方式,它支持文件和文件夹的加密压缩以及解压操作。zip4j不仅简单易用,还提供了强大的...
### 使用 Java.util.zip 包实现数据压缩与解压 在计算机科学领域,数据压缩技术是一项重要的功能,它能够帮助减少存储空间的需求以及提高网络传输效率。本文将通过一系列的示例来详细介绍如何利用 Java 中的 `java....
而解压ZIP文件,可以使用`unzip()`方法: ```java File sourceZip = new File("input.zip"); File destinationDir = new File("destination"); ZipUtils.unzip(sourceZip, destinationDir); ``` 以上代码片段展示...
`ZipOutputStream` 用于创建ZIP文件,而 `ZipInputStream` 则用于读取和解压ZIP文件。以下是一个简单的压缩示例: ```java import java.io.*; import java.util.zip.*; public class ZipUtil { public static ...
以上代码示例展示了如何使用Java的`java.util.zip`包创建和解压ZIP文件。这些工具类可以作为通用的ZIP操作函数库,适用于各种项目需求。注意,实际应用中可能需要添加错误处理和日志记录以增强健壮性。同时,对于大...