- 浏览: 70235 次
- 性别:
- 来自: 上海
文章分类
最新评论
jdk提供了Zip相关的类方便的实现压缩和解压缩。使用方法很简单。下边分别是压缩和解压缩的简单事例
1,压缩的
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Zip {
static final int BUFFER = 2048 ;
public static void main(String argv[]) {
try {
BufferedInputStream origin = null ;
FileOutputStream dest = new FileOutputStream( " E:\\test\\myfiles.zip " );
ZipOutputStream out = new ZipOutputStream( new BufferedOutputStream(
dest));
byte data[] = new byte [BUFFER];
File f = new File( " e:\\test\\a\\ " );
File files[] = f.listFiles();
for ( int i = 0 ; i < files.length; i ++ ) {
FileInputStream fi = new FileInputStream(files[i]);
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i].getName());
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0 , BUFFER)) != - 1 ) {
out.write(data, 0 , count);
}
origin.close();
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2,解压缩的。
import
java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import
java.io.File;
import
java.io.FileOutputStream;
import
java.util.Enumeration;
import
java.util.zip.ZipEntry;
import
java.util.zip.ZipFile;
public
class
UnZip
{
static
final
int
BUFFER
=
2048
;
public
static
void
main(String argv[])
{
try
{
String fileName
=
"
E:\\test\\myfiles.zip
"
;
String filePath
=
"
E:\\test\\
"
;
ZipFile zipFile
=
new
ZipFile(fileName);
Enumeration emu
=
zipFile.entries();
int
i
=
0
;
while
(emu.hasMoreElements())
{
ZipEntry entry
=
(ZipEntry)emu.nextElement();
//
会把目录作为一个file读出一次,所以只建立目录就可以,之下的文件还会被迭代到。
if
(entry.isDirectory())
{
new
File(filePath
+
entry.getName()).mkdirs();
continue
;
}
BufferedInputStream bis
=
new
BufferedInputStream(zipFile.getInputStream(entry));
File file
=
new
File(filePath
+
entry.getName());
//
加入这个的原因是zipfile读取文件是随机读取的,这就造成可能先读取一个文件
//
而这个文件所在的目录还没有出现过,所以要建出目录来。
File parent
=
file.getParentFile();
if
(parent
!=
null
&&
(
!
parent.exists()))
{
parent.mkdirs();
}
FileOutputStream fos
=
new
FileOutputStream(file);
BufferedOutputStream bos
=
new
BufferedOutputStream(fos,BUFFER);
int
count;
byte
data[]
=
new
byte
[BUFFER];
while
((count
=
bis.read(data,
0
, BUFFER))
!=
-
1
)
{
bos.write(data,
0
, count);
}
bos.flush();
bos.close();
bis.close();
}
zipFile.close();
}
catch
(Exception e)
{
e.printStackTrace();
}
}
}
PS:
把
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
改成
import org.apache.tools.zip.*;
然后把
Enumeration emu = zipFile.entries();
改成
Enumeration emu = zipFile.getEntries();
就可以支持中文了
转摘自: http://www.blogjava.net/dreamstone/archive/2007/08/09/134986.html
发表评论
-
Tomcat配置远程调试端口
2016-07-26 15:35 0Tomcat配置远程调试端口 1.Linxu系统: apa ... -
获取通过body传输的postdata数据
2016-07-01 18:39 0目前基于rest风格的很多API开始使用通过body da ... -
LOG4J 配置
2015-04-01 17:44 690log4j.rootLogger = info, consol ... -
利用Java实现压缩与解压缩(zip、gzip)支持中文路径
2011-10-19 22:21 1404zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是 ... -
安全有效的实现两星期内自动登陆功能
2011-10-19 22:02 1159自动登陆流程: 1. 保存用户信息阶段: 当用户登陆网站 ... -
基于Spring框架的Shiro配置
2011-10-15 13:37 2581一、在web.xml中添加shiro过滤器 ... -
web应用 相对路径 绝对路径 总结
2011-05-20 11:50 2952参考资料: http://www.iteye.com/topi ... -
Spring,hibernate,struts的面试笔试题(含答案)
2011-05-07 14:23 1Hibernate工作原理及为什么要用? 原 ... -
spring入门编程问题集锦
2011-05-07 14:19 10651、如何学习Spring? 你 ... -
SchemaExport工具实战(hibernate)
2011-03-05 14:57 977SchemaExport工具实战 通常我们使用生成数据库 ... -
用java实现zip压缩
2011-02-12 11:42 1032今天写了个用java压缩的功能,可以实现对文件和目录的压缩。 ... -
一个java处理JSON格式数据的通用类
2011-02-11 14:57 1740进入需要在项目中用java处理json格式的数据,因此封装了一 ... -
高效的Java异常处理
2011-01-20 20:37 903Java开发人员可以做出的 ... -
Java 理论与实践: 关于异常的争论
2011-01-20 20:28 679与 C++ 类似,Java 语言也 ... -
讲解Java异常
2011-01-20 14:35 792六种异常处理的陋习 ... -
jsp2.0自定义标签Tag
2011-01-13 00:56 1937在JSP2.0 中,对于自定义 ... -
Axis2部署WebService
2011-01-12 21:14 2077Axis2下提供了三种配置文件,一种是整个系统的全局配置axi ... -
高效java异常处理机制
2011-01-12 16:34 1017Java 开发人员可以做 ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2010-12-20 17:42 768一、 1、启动一个WEB项 ... -
Java人民币小写转大写(小数点后只支持到分)
2010-08-02 18:04 1462package com.resource.test; imp ...
相关推荐
Java 提供了内置的支持来完成文件的压缩与解压缩操作,这些功能主要通过 `java.util.zip` 区域内的类实现。 #### 二、Zip 相关类介绍 - **ZipOutputStream**:用于创建 zip 压缩文件。 - **ZipEntry**:表示 zip ...
本教程将详细讲解如何在Java中进行ZIP文件的压缩与解压缩。 首先,我们来看`Zipper.java`和`Unzip.java`这两个类。它们分别实现了ZIP文件的压缩和解压缩功能。在Java中,`java.util.zip`包提供了对ZIP文件格式的...
java zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzip
`UnZip.java`和`UnZip2.java`可能包含了不同的解压实现,例如,`UnZip2.java`可能会包含更高效或更复杂的解压逻辑,比如递归处理子目录、处理大型ZIP文件的优化、错误处理或进度指示等。这些文件可能使用了循环、...
通过上述步骤,可以实现基于Java向ZIP压缩包追加文件的功能,虽然这个过程涉及解压和再压缩,但它是最常见的解决方案,因为Java的标准库不直接支持追加操作。在实际应用中,可以根据具体需求进行优化和调整,以满足...
网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.... new ZipUtil().unZip("E:\\aaaa\\中文.zip","E:\\aaaa\\中文","GBK"); } 实例: 将E:\\aaaa\\中文.zip解压到E:\\aaaa\\中文目录下
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
在Linux操作系统中,`zip`和`unzip`是两个常用的命令行工具,用于压缩和解压文件。RPM(Red Hat Package Manager)是Linux发行版中广泛使用的软件包管理器,尤其在基于RPM的系统如CentOS、Fedora等上。本压缩包包含...
在Java编程语言中,处理ZIP压缩和解压缩是常见的任务,尤其在文件管理和数据传输方面。ZIP是一种广泛使用的文件格式,用于将多个文件打包到一个单一的可移植档案中,以便于存储、传输或备份。以下是一些关于Java中...
在Java编程环境中,处理压缩文件,特别是ZIP格式的文件...总的来说,解压包含中文文件名的ZIP文件在Java中可以通过正确设置编码和使用适当的库或工具来实现。理解文件名编码和选择合适的处理方法是解决这类问题的关键。
在Java编程环境中,处理ZIP格式的压缩包是一项常见的任务,无论是为了读取文件内容、打包文件还是进行数据传输。本文将深入探讨如何使用Java来解压ZIP格式的压缩包,并提供相关的源码参考。 首先,我们需要了解Java...
我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示如何实现文件的解压缩功能。 首先,`java.util.zip`包提供了几个关键类,用于处理各种压缩格式,如`...
本文将详细讲解如何使用Java进行Zip文件的压缩与解压缩操作,并结合给定的标签"源码"和"工具"来探讨实际应用场景。 一、Java Zip压缩 1. 使用`ZipOutputStream`类进行压缩: `ZipOutputStream`是Java提供的用于...
本文将深入探讨如何使用Java实现这一功能,同时也会提及与ActionScript 3(AS3)进行加密解密的相关知识。 首先,我们要了解Java中的ZipOutputStream和ZipInputStream类,它们是Java标准库提供的用于创建和读取ZIP...
在本篇中,我们将深入探讨如何使用Java API来实现ZIP文件的解压缩,以及可能需要用到的第三方库。 首先,Java标准库(Java Standard Library)自身提供了对ZIP文件的支持。在`java.util.zip`包中,有两个关键类用于...
在Java编程中,处理压缩和解压缩ZIP文件是一项常见的任务,尤其当文件中包含中文字符时,可能会遇到中文乱码的问题。这是因为Java的标准库在处理非ASCII编码时可能存在不足。本篇文章将详细介绍如何使用Java标准库...
### Java 解压ZIP文件知识点详解 #### 一、概述 在Java编程中,解压缩ZIP文件是一项常见的任务,尤其在处理归档文件或备份时。本文将深入探讨如何使用Java来解压ZIP文件,并通过一个具体的示例代码来展示整个过程。...
通过上述示例代码,我们可以清晰地了解到如何使用 Java 实现目录文件的 ZIP 压缩与解压。该示例不仅提供了基础的压缩解压逻辑,还包含了递归处理文件夹的能力,使得程序能够应对更复杂的场景需求。
本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的代码示例展示了整个处理流程,并针对不同格式文件的特点进行了优化。 #### ZIP文件的压缩与解压缩 ##### 压缩原理与API...
首先,让我们来看一下`JavaZip.java`这个文件。它很可能包含了一个示例程序,演示了如何使用Java API来压缩和解压缩文件。在Java中,我们通常使用`ZipOutputStream`来创建ZIP文件,`ZipInputStream`来读取和解压缩...