- 浏览: 390035 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (215)
- ubuntu (27)
- 虚拟机 (13)
- 数据库 (29)
- JAVA (40)
- 搜索 (23)
- 开发工具 (2)
- 产品 (2)
- 工具 (1)
- 应用服务器 (5)
- linux (17)
- log (1)
- 多线程 (3)
- 异常 (1)
- shell (6)
- 12306 ;互联网 (1)
- 持续集成&Hudson (4)
- js (1)
- JAVA OR-Map (1)
- 漏洞 (1)
- svn (1)
- MAVEN (3)
- 架构 (1)
- windows (1)
- json (1)
- web (3)
- jenkins (2)
- iptables (2)
- JAVA ssh (0)
- 项目管理 (1)
- tomcat (1)
- 安全 (1)
- 数据库 mysql (1)
- 性能 (1)
最新评论
-
sbwfgihc:
怎么用的啊,
<转>mysql 树查询语句 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
<转>Solr Suggest实现搜索智能提示 -
songsove:
请问您qq多少
solr 对拼音搜索和拼音首字母搜索的支持 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
<转>Solr Suggest实现搜索智能提示 -
norain1988:
这样就可以实现相关搜索了吗
solr 百度相关搜索类似功能的实现
java中常用的压缩解压开发包
1. AT4J是一套数据压缩和文件打包存档的工具,采用java开发 。它支持读取和创建zip和tar文件,以及通过第三方库实现多种类型的压缩算法。其中 bzip2 压缩库采用 Apache Commons Compress 项目.LZMA 压缩库采用 7-ZIP。
2. jazzlib - 是一个完全用Java实现的压缩包,可以方便的替代现在的java.util.zip原始的实现。典型的使用场合是在applet中使用它,在applet中不允许使用原始代码。http://jazzlib.sourceforge.net/
3. ZeroTurnaround 简称 zt-zip , 是一个 Java 用来处理压缩包的类库。www.zeroturnaround.com/
有些童鞋打不开,那就去这里吧:https://github.com/zeroturnaround/zt-zip4. Apache Commons Compress用以实现将文件压缩或解压成 tar、zip、bzip2 等格式。http://commons.apache.org/compress/
5. 其它: 还有很多例如 junrar,jZipLib,jZlib4ME等等。
package com.accp.commons.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import org.apache.commons.lang.StringUtils;
/**
* 压缩解压缩工具包
* @author yoyoflash
* @date:2012-6-15 下午12:03:27
*/
public class ZipTools {
private static final int ZIP_BUFFER = 2048;
private int zip_level;
public ZipTools() {
zip_level = 0;
}
/**
* setLevel level - the compression level (0-9)
*
* @param level
* int
*/
public void setLevel(int level) {
this.zip_level = level;
}
/**
* 支持对于文件和目录的压缩
*
* @param inputFile
* File 要压缩的目录或者文件
* @param outputFile
* File 输出的压缩文件
* @throws ZipException
*/
public void zipFile(File inputFile, File outputFile) throws ZipException {
try {
BufferedOutputStream bout = new BufferedOutputStream(
new FileOutputStream(outputFile), ZIP_BUFFER);
ZipOutputStream out = new ZipOutputStream(bout);
zip(out, inputFile, inputFile.getName());
out.close();
} catch (IOException ex) {
throw new ZipException(ex.getMessage());
}
}
/**
* 批量压缩功能
*
* @param inputFiles
* File[] 要压缩的文件数组
* @param outputFile
* File 压缩后的文件
* @throws ZipException
*/
public void zipFiles(File[] inputFiles, File outputFile)
throws ZipException {
try {
BufferedOutputStream bout = new BufferedOutputStream(
new FileOutputStream(outputFile), ZIP_BUFFER);
ZipOutputStream out = new ZipOutputStream(bout);
for (int i = 0; i < inputFiles.length; i++) {
zip(out, inputFiles[i], inputFiles[i].getName());
}
out.close();
} catch (IOException ex) {
throw new ZipException(ex.getMessage());
}
}
/**
* 解压缩文件
*
* @param inputFile
* File 原压缩文件
* @param outputFile
* File 解压目录
* @throws ZipException
*/
public void unZipFile(File inputFile, File outputFile) throws ZipException {
try {
FileInputStream tin = new FileInputStream(inputFile);
CheckedInputStream cin = new CheckedInputStream(tin, new CRC32());
BufferedInputStream bufferIn = new BufferedInputStream(cin,
ZIP_BUFFER);
ZipInputStream in = new ZipInputStream(bufferIn);
ZipEntry z = in.getNextEntry();
while (z != null) {
String name = z.getName();
if (z.isDirectory()) {
File f = new File(outputFile.getPath() + File.separator
+ name);
f.mkdirs();
} else {
File f = new File(outputFile.getPath() + File.separator
+ name);
f.createNewFile();
FileOutputStream out = new FileOutputStream(f);
byte data[] = new byte[ZIP_BUFFER];
int b;
while ((b = in.read(data, 0, ZIP_BUFFER)) != -1) {
out.write(data, 0, b);
}
out.close();
}
z = in.getNextEntry();
}
in.close();
}
catch (IOException ex) {
throw new ZipException(ex.getMessage());
}
}
private void zip(ZipOutputStream out, File f, String base)
throws FileNotFoundException, ZipException {
if (zip_level != 0) {
out.setLevel(zip_level);
}
if (f.isDirectory()) {
zipDirectory(out, f, base);
} else {
if (StringUtils.isEmpty(base)) {
base = f.getName();
}
zipLeapFile(out, f, base);
}
}
private void zipDirectory(ZipOutputStream out, File f, String base)
throws FileNotFoundException, ZipException {
File[] files = f.listFiles();
if (zip_level != 0) {
out.setLevel(zip_level);
}
try {
out.putNextEntry(new ZipEntry(base + "/"));
} catch (IOException ex) {
throw new ZipException(ex.getMessage());
}
if (StringUtils.isEmpty(base)) {
base = new String();
} else {
base = base + "/";
}
for (int i = 0; i < files.length; i++) {
zip(out, files[i], base + files[i].getName());
}
}
private void zipLeapFile(ZipOutputStream out, File f, String base)
throws FileNotFoundException, ZipException {
if (zip_level != 0) {
out.setLevel(zip_level);
}
try {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
BufferedInputStream bufferIn = new BufferedInputStream(in,
ZIP_BUFFER);
byte[] data = new byte[ZIP_BUFFER];
int b;
while ((b = bufferIn.read(data, 0, ZIP_BUFFER)) != -1) {
out.write(data, 0, b);
}
bufferIn.close();
} catch (IOException ex) {
throw new ZipException(ex.getMessage());
}
}
}
发表评论
-
<转>Hessian入门(与Spring集成)
2015-01-20 10:31 4434原链接:http://blog.csdn.net/chenwe ... -
<转>如何编程实现 2 + 2 = 5?
2014-10-16 11:00 831原链接:http://codeway.co/%E5%A6%82 ... -
<转>利用位操作来进行状态操作
2014-07-15 11:00 709print?<SPAN style="BACK ... -
java命令
2014-04-23 17:17 823jps -v 查看所有的jvm进程,包括进程ID,进程启动的路 ... -
<转>给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
2014-03-28 14:14 452原链接:http://www.blogjava.net/juh ... -
<转>JVM调优总结 -Xms -Xmx -Xmn -Xss
2014-01-21 21:21 881原链接:http://unixboy.iteye.com/bl ... -
<转>Eclipse 常用设置
2013-12-23 16:26 715原链:http://blog.csdn.net/appleca ... -
tomcat各版本信息
2013-12-23 10:02 844Apache官方对各版本的解释:http://tomcat ... -
<转> 如何获取用户的真实IP
2013-12-23 09:40 701问题引出: 在JSP里,获取客户端的IP地址的方法是:re ... -
从SVN导出指定版本号之间修改的文件
2013-12-20 16:55 559转:http://www.kuqin.com/manageto ... -
用JAVA调用ssh命令
2013-12-09 15:21 1946原链:http://blog.csdn.net/f ... -
java执行shell命令 outputStream缓冲区阻塞
2013-11-27 15:49 1734http://bbs.csdn.net/topics/1101 ... -
java有效的IP正则表达式
2013-11-06 20:46 865public static boolean isboolIp ... -
<转>JSCH 如何实现在远程机器上执行linux命令
2013-08-23 09:34 1419原链:http://blog.csdn.net/hongbin ... -
<转>session 之session混乱解决方法
2013-08-07 21:23 1777转:http://blog.csdn.net/wmj2003/ ... -
Java JSON技术框架选型与实例
2013-08-05 15:12 805JSON JSON英文全称为JavaScript Obje ... -
JVM内存结构系列:HotSpot内存结构最清晰
2013-07-29 11:37 807SUN的jvm内存池被划分为以下几个部分:Eden Spa ... -
<转>探究两大Java内存溢出类型
2013-07-29 10:31 764你知道如何解决Java内 ... -
<转>list,set,map,数组间的相互转换
2013-07-25 12:30 992原链:http://teamojiao.iteye.com/ ... -
Eclipse调试Bug的七种常用技巧
2013-07-04 10:24 828记得刚刚毕业的时候,自己连断点也不会打,当时还在用JCre ...
相关推荐
`java.util.zip`是Java标准库提供的用于处理ZIP文件的API,它包含了处理压缩和解压缩功能的基本类。在本主题中,我们将深入探讨如何使用Java来对文件进行zip压缩和解压缩,并提及`ant.jar`的作用。 首先,让我们来...
本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...
在本篇中,我们将深入探讨如何使用Java API来实现ZIP文件的解压缩,以及可能需要用到的第三方库。 首先,Java标准库(Java Standard Library)自身提供了对ZIP文件的支持。在`java.util.zip`包中,有两个关键类用于...
在Java编程环境中,处理文件的压缩与解压缩是常见的任务,而涉及到安全性,加密和解密就显得尤为重要。本文将详细讲解如何使用Java实现ZIP压缩包的加密与解密。 首先,我们需要理解加密的基本概念。加密是将明文...
`zip4j`是一个强大的Java库,它提供了丰富的API来处理ZIP文件,包括添加、删除、提取文件,以及对ZIP文件进行加密。首先,我们需要引入`zip4j`库到我们的项目中。如果你使用的是Maven,可以在pom.xml文件中添加以下...
本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种广泛使用的文件归档格式,它可以将多个文件和目录组合成一个单一的可压缩文件,方便存储和传输。在Java中...
通过Java提供的`java.util.zip`包,我们可以轻松地对文件和文件夹进行压缩和解压缩操作。了解并熟练掌握这些API,对于Java开发者来说是非常有用的技能,尤其是在处理大量数据或需要优化存储空间的应用场景中。在实际...
java.util.Enumeration<ZipEntry> e = zipFile.getEntries(); while (e.hasMoreElements()) { ZipEntry zipEnt = e.nextElement(); // 解压缩逻辑... } ``` 对于`.zip`文件的压缩,可以使用`ZipOutputStream`,...
在Java中,`java.util.zip`包提供了处理ZIP文件格式的类和接口,包括`ZipOutputStream`用于创建ZIP文件,`ZipInputStream`用于读取ZIP文件,以及`ZipEntry`代表ZIP文件中的一个条目。 1. **Java ZIP API**: `java....
我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示如何实现文件的解压缩功能。 首先,`java.util.zip`包提供了几个关键类,用于处理各种压缩格式,如`...
4. **源代码实现**:实践中提供的源代码展示了如何使用Java API来实现文件和目录的压缩与解压缩。这可能包括读取文件,创建压缩流,写入数据到压缩流,以及从压缩流中读取和写入文件等步骤。 5. **文件操作**:在...
1. **Java档案API (Java Archive API, JAR)**: Java标准库提供了`java.util.zip`包,其中包含用于创建、读取和修改zip档案的类,如`ZipOutputStream`和`ZipInputStream`。这些类可以用来压缩文件和文件夹。 2. **`...
在Java中,我们可以使用标准的`java.util.zip`库来处理基本的ZIP文件操作,但若涉及到加密和解密,就需要借助第三方库,例如`Zip4j`。本文将深入探讨如何使用Java和Zip4j库进行ZIP文件的加密与解密。 首先,`java....
综上所述,Java提供的`java.util.zip`包提供了处理ZIP文件的强大工具。通过`ZipFile`、`ZipOutputStream`和`ZipEntry`,我们可以方便地完成文件和目录的压缩与解压缩任务。在实际应用中,理解这些类的用法和交互对于...
ZIP是一种广泛使用的文件压缩格式,Java提供了一套完整的API来处理ZIP文件,使得我们可以方便地进行打包和解压操作。以下是对这个主题的详细讲解: 一、Java打包压缩ZIP Java中的`java.util.zip`包提供了对ZIP文件...
`java.util.zip`包提供了`ZipFile`类,它可以方便地处理这些复杂情况。同时,`ZipOutputStream`和`ZipInputStream`也支持GZIPOutputStream和GZIPInputStream,它们可以与Zip流结合使用,提供更高效的压缩。 总的来...
解密时,先使用`Base64Util.decodeBase64StringToFile()`将BASE64字符串解码回ZIP文件,再使用相应的工具解压缩。 在实际开发中,这些工具类可以封装成一个完整的库,提供给其他部分代码使用。例如,你可以创建一个...
首先,Java的标准库`java.util.zip`提供了`ZipOutputStream`和`ZipInputStream`类,用于创建和读取ZIP文件。然而,在处理中文等非ASCII字符时,如果不正确设置字符编码,就可能导致乱码。为了解决这个问题,我们需要...