- 浏览: 3515302 次
- 性别:
- 来自: 大连
博客专栏
-
使用Titanium Mo...
浏览量:37505
-
Cordova 3.x入门...
浏览量:604415
-
常用Java开源Libra...
浏览量:678191
-
搭建 CentOS 6 服...
浏览量:87346
-
Spring Boot 入...
浏览量:399876
-
基于Spring Secu...
浏览量:69090
-
MQTT入门
浏览量:90521
文章分类
最新评论
-
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)
- 下载次数: 394
- zip4j_1.3.2.zip (121.3 KB)
- 下载次数: 175
- zip4j_examples_1.3.2.zip (150.6 KB)
- 下载次数: 147
- zip4j_src_1.3.2.zip (100.4 KB)
- 下载次数: 119
评论
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 1507(一)分页类型 逻辑分页(客户端分页):从数据库将所有记录查询 ... -
JAXB实例入门
2017-06-09 10:17 1707JAXB(Java Architecture for XML ... -
Java Web项目中的Event
2017-06-05 09:42 1618(1)Servlet的事件和监听器 *** Servle ... -
关于Java SPI
2017-05-04 12:07 1993SPI:Service Provider Interface ... -
Jackson实例入门
2017-05-03 12:55 1639Jackson:Java平台的JSON解析器。 版本: ja ... -
为什么https被redirect成了http?
2016-11-14 09:35 7641全站HTTPS并不是配置证书CA,改改路径URL那么简单! ... -
简化Java代码
2016-10-09 11:25 1251样板代码Boilerplate Code的 ... -
Java Web Project based on Spring
2016-09-28 11:21 988基于Spring开发Web项目的标配Library。 工具 ... -
Eclipse Scrapbook快速测试Java代码
2016-09-09 15:12 1281Scrapbook是Eclipse提供的特 ... -
Java爬取 百度图片&Google图片&Bing图片
2016-08-04 09:54 7460先看看抓取的结果。 抓关键字“美女”的百度图片: 抓关键字 ... -
学习Java容易混淆的一概念
2016-05-13 11:01 1611基础篇 (1)== vs equals() ... -
20年Java发展历程(1995-2015)
2015-03-25 21:58 2278Java语言作为现在最流行的编程语言之一,它已经经历了整整20 ... -
Java命令行选项解析之Commons-CLI & Args4J & JCommander
2014-11-27 12:09 22388熟悉Linux命令的都知道几乎所有程序都会提供一些命令行选项。 ... -
Java调用Native API之JNA
2014-11-10 12:09 7716Java调用C/C++的Native API一般采用JNI(J ... -
Java执行SSH/SCP之JSch
2014-08-27 17:17 11430JSch (Java Secure Channel)是纯Jav ... -
GC日志分析
2014-07-18 08:54 2825GC:Garbage Collection 垃圾回收 (1) ... -
Java元组类型之javatuples
2014-05-20 10:58 26920关于方法的返回值,经常需要返回2个值或多个值的一个序列,比如数 ... -
Java 8 之 反编译Lambda表达式(CFR)
2014-04-14 09:34 6478CFR(Class File Reader) - anoth ... -
Java 8 之 Optional类
2014-04-08 14:38 2935在Java中,null代表一个不存在的对象,如果对它进行操作就 ... -
Java 8 之 Lambda表达式
2014-04-01 09:14 16126Java 8历时2年8个月,这次升级是继Java 5之后对Ja ...
相关推荐
java压缩解压ZIP
用Java压缩解压ZIP文件,将利用java.util.zip 包中提供的类来实现压缩和解压zip 格式文件的功能。当然,本例在功能上完全没有Winzip 等成熟的压缩软件那么强,也不能做的很强,本例仅仅是演示如何来使用java.util....
java控制指定路径下的文件夹压缩成zip格式。 java将zip压缩包解压成为文件夹。直接使用io流进行操作,不需借助其他jar包
java解压zip压缩文件,读取压缩文件中的内容并输出到输出文件中。
java 操作Zip文件(压缩、解压、加密) zip4j-1.3.2.jar ant-1.10.6.jar
NULL 博文链接:https://zhenyong.iteye.com/blog/1576148
Java实现的带密码压缩与解压zip文件源码,可将多个文件使用不同的密码压进同一个zip文件;可以解压带密码的zip文件(store压缩模式)
java实现的解压与压缩的类 其中有zip和rar类型的 还包括了所需的架包
java 中压缩ZIP格式源码,仅供参考。
java压缩文件成zip实现无乱码 内置类与jar包
完美支持解压zip文件多层文件解压,文件夹,文件,支持中文。
java zip 压缩解压例子
使用java压缩也解压zip文件方法,解决中文乱码问题。使用java自带的压缩解压算法,会出现中文乱码问题。使用apache io的zip包,有效解决该问题。Ant的压缩解压,也是使用该类。
网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.简单实用.下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\...
JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码
Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
使用 Java 语言实现并封装的创建 ZIP 格式的压缩文件并解压到指定目录和解压 ZIP 文件到指定目录的工具类。
这几天做一个操作docx的文档的功能,Apache的POI功能有限,就参考了相关资料写的一个Java压缩和解压zip文件的工具类。全部使用的是Java自带的类库,中文的文件名会有乱码的问题。