- 浏览: 454034 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (211)
- java (37)
- spring相关 (3)
- struts (10)
- 面试 (1)
- jsp/servlet (18)
- 持久化框架 (1)
- IT相关新闻 (3)
- 服务器 (11)
- 插件 (4)
- pushlet (3)
- js (24)
- oracle (29)
- mysql (9)
- hibernate (5)
- 开发工具 (6)
- jquery (6)
- 页面标签jstl,el (1)
- linux (25)
- 英语 (1)
- log4j (1)
- html/css (6)
- sqlserver (2)
- dwr (1)
- 设计模式 (4)
- vmware (2)
- office (1)
- eclipse (5)
- svn (1)
- webservice (1)
最新评论
-
18335864773:
建议使用 pageoffice 组件套红
js操作word套红 -
lopez:
数据库系统的客户程序只要向数据库系统声明了一个事务,数据库系统 ...
Hibernate事物控制与管理 -
liujq4512:
删了还是没用
An internal error occurred during: "Initializing Java Tooling". -
elaine0111:
非常感谢这篇文章,嘿嘿,解决了我的问题。我把这段代码保存在我的 ...
Js设置文本框中焦点位置在最后 -
weishuguangeye:
不错!
单例模式(Singleton)
package test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
*
* @author liangjw
* @desc 测试java打zip包和解压zip包
* 用java.util.zip下的类会出现乱码,换成org.apache.tools.zip没有乱码
*/
public class MyTestZip {
public static void main(String args[]) throws Exception{
MyTestZip mtz=new MyTestZip();
//mtz.zipFile("f://test", "f://testttt.zip");
mtz.upZipFile("f:\\testttt.zip","f:\\ttt");
}
/**
* 将指定目录压缩
* @param basePath 指定的目录的路径
* @param zipname 压缩后的存放路径
* @throws Exception
*/
public void zipFile(String basePath,String zipname) throws Exception{
ZipEntry ze = null;
byte[] buffer = new byte[1024];
int readLen = 0;
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipname));
for (File file : getFiles(new File(basePath))) {
System.out.println("ziping:" + file.getName());
ze = new ZipEntry(getRelativePath(file,basePath));
ze.setSize(file.length());
ze.setTime(file.lastModified());
zos.putNextEntry(ze);
InputStream in = new BufferedInputStream(new FileInputStream(file));
while ((readLen = in.read(buffer, 0, 1024)) != -1) {
zos.write(buffer, 0, readLen);
}
in.close();
}
zos.close();
}
/**
* 将给定的压缩文件进行解压,放到指定目录
* @param zipFilename 需要解压缩的文件
* @param dir 解压后文件存放的目录
*/
public void upZipFile(String zipFilename,String dir) throws Exception{
ZipInputStream zin=new ZipInputStream(new FileInputStream(zipFilename));
ZipEntry ze=null;
byte[] buf=new byte[1024];
while((ze=zin.getNextEntry())!=null){
System.out.println("unziping:"+ze.getName());
OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(dir,ze.getName())));
int readLen=0;
while ((readLen=zin.read(buf, 0, 1024))!=-1) {
os.write(buf, 0, readLen);
}
os.close();
}
zin.close();
}
/**
* 根据给定的目录返回该文件夹下所有的文件(包括子目录) 如果给定的是文件则返回该文件
*
* @param file
* 给定的文件目录
* @return 所有文件的列表
*/
private static List<File> getFiles(File fileDir) {
List<File> listFiles = new LinkedList<File>();
// 判断给定的fileDir是否为文件,如果是则直接返回
if (fileDir.isFile()) {
listFiles.add(fileDir);
return listFiles;
}
// 如果是目录则遍历该目录
File[] files = fileDir.listFiles();
for (File file : files) {
if (file.isFile()) {
listFiles.add(file);
} else {
// 对方法进行递归调用
listFiles.addAll(getFiles(file));
}
}
return listFiles;
}
/**
* 给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径
* @param file 实际的文件名
* @param baseDir 根目录
* @return
*/
private static String getRelativePath(File file, String baseDir) {
File base = new File(baseDir);
String filename = file.getName();
while(true){
file = file.getParentFile();
if(file==null)break;
if(file.equals(base))break;
else filename = file.getName() + "/" + filename;
}
return filename;
}
/**
* 给定根目录,返回一个相对路径所对应的实际文件名.
* @param baseDir 指定根目录
* @param absFileName 相对路径名,来自于ZipEntry中的name
* @return java.io.File 实际的文件
*/
public static File getRealFileName(String baseDir, String absFileName){
//判断是否有下级目录,如果没有则将该文件直接new出来
String[] dirs=absFileName.split("/");
File ret=new File(baseDir);
//有下级目录则先创建目录,再创建文件
if(dirs.length>1){
for (int i = 0; i < dirs.length-1;i++) {
ret=new File(ret, dirs[i]);
}
if(!ret.exists())
ret.mkdirs();
ret=new File(ret, dirs[dirs.length-1]);
return ret;
}
return new File(ret,absFileName);
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
*
* @author liangjw
* @desc 测试java打zip包和解压zip包
* 用java.util.zip下的类会出现乱码,换成org.apache.tools.zip没有乱码
*/
public class MyTestZip {
public static void main(String args[]) throws Exception{
MyTestZip mtz=new MyTestZip();
//mtz.zipFile("f://test", "f://testttt.zip");
mtz.upZipFile("f:\\testttt.zip","f:\\ttt");
}
/**
* 将指定目录压缩
* @param basePath 指定的目录的路径
* @param zipname 压缩后的存放路径
* @throws Exception
*/
public void zipFile(String basePath,String zipname) throws Exception{
ZipEntry ze = null;
byte[] buffer = new byte[1024];
int readLen = 0;
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipname));
for (File file : getFiles(new File(basePath))) {
System.out.println("ziping:" + file.getName());
ze = new ZipEntry(getRelativePath(file,basePath));
ze.setSize(file.length());
ze.setTime(file.lastModified());
zos.putNextEntry(ze);
InputStream in = new BufferedInputStream(new FileInputStream(file));
while ((readLen = in.read(buffer, 0, 1024)) != -1) {
zos.write(buffer, 0, readLen);
}
in.close();
}
zos.close();
}
/**
* 将给定的压缩文件进行解压,放到指定目录
* @param zipFilename 需要解压缩的文件
* @param dir 解压后文件存放的目录
*/
public void upZipFile(String zipFilename,String dir) throws Exception{
ZipInputStream zin=new ZipInputStream(new FileInputStream(zipFilename));
ZipEntry ze=null;
byte[] buf=new byte[1024];
while((ze=zin.getNextEntry())!=null){
System.out.println("unziping:"+ze.getName());
OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(dir,ze.getName())));
int readLen=0;
while ((readLen=zin.read(buf, 0, 1024))!=-1) {
os.write(buf, 0, readLen);
}
os.close();
}
zin.close();
}
/**
* 根据给定的目录返回该文件夹下所有的文件(包括子目录) 如果给定的是文件则返回该文件
*
* @param file
* 给定的文件目录
* @return 所有文件的列表
*/
private static List<File> getFiles(File fileDir) {
List<File> listFiles = new LinkedList<File>();
// 判断给定的fileDir是否为文件,如果是则直接返回
if (fileDir.isFile()) {
listFiles.add(fileDir);
return listFiles;
}
// 如果是目录则遍历该目录
File[] files = fileDir.listFiles();
for (File file : files) {
if (file.isFile()) {
listFiles.add(file);
} else {
// 对方法进行递归调用
listFiles.addAll(getFiles(file));
}
}
return listFiles;
}
/**
* 给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径
* @param file 实际的文件名
* @param baseDir 根目录
* @return
*/
private static String getRelativePath(File file, String baseDir) {
File base = new File(baseDir);
String filename = file.getName();
while(true){
file = file.getParentFile();
if(file==null)break;
if(file.equals(base))break;
else filename = file.getName() + "/" + filename;
}
return filename;
}
/**
* 给定根目录,返回一个相对路径所对应的实际文件名.
* @param baseDir 指定根目录
* @param absFileName 相对路径名,来自于ZipEntry中的name
* @return java.io.File 实际的文件
*/
public static File getRealFileName(String baseDir, String absFileName){
//判断是否有下级目录,如果没有则将该文件直接new出来
String[] dirs=absFileName.split("/");
File ret=new File(baseDir);
//有下级目录则先创建目录,再创建文件
if(dirs.length>1){
for (int i = 0; i < dirs.length-1;i++) {
ret=new File(ret, dirs[i]);
}
if(!ret.exists())
ret.mkdirs();
ret=new File(ret, dirs[dirs.length-1]);
return ret;
}
return new File(ret,absFileName);
}
}
发表评论
-
java生成pdf以及解决中文中文乱码问题
2013-03-11 16:33 12411itext版本:5.4.0 下载 ... -
jax-ws webservice编程
2013-01-29 16:07 64761.理解JAX-WS 1.1JAX-WS概述 JAX ... -
was6.1修改java编译版本
2013-01-11 09:06 1949jsp中如果用到了jdk1.5的新特性,在was6.1下编译会 ... -
eclipse生成javadoc乱码解决方式
2013-01-11 09:05 847在Extra javadoc options下增加如下参数 j ... -
Eclipse Jee项目开发前准备 (转)
2012-12-31 09:06 1002Eclipse Jee项目编码设置 Window-> ... -
SVN 签出源码 Struts Spring Hibernate
2011-09-15 09:38 1177SVN 签出源码 Struts Spring ... -
几种Java数据库连接池实现(一)
2011-08-31 14:15 1676几种Java数据库连接池实现(一) (一) package s ... -
win7下硬盘安装ubuntu
2011-08-22 20:36 992安装方法见附件 -
比较好的java网站[推荐]
2011-04-07 12:42 15871. The Source for Java Technol ... -
jad反编译jar文件
2011-02-15 16:56 1497//首先使用jar命令将jar文件解压缩到classes目录 ... -
接口与抽象类区别
2011-01-19 15:21 655接口与抽象类区别 《设计模式Java手册》中的,觉得写得很简 ... -
正则入门
2010-12-20 13:21 870< type="text/javascript ... -
序列键生成器与单例及多例模式
2010-12-13 10:37 1089在一个关系数据库中,所有的数据都是存储在表里,而每一个表都有一 ... -
Java中日期格式转换
2010-12-10 15:35 1504Java中日期格式转换 /** * 字符串转换为jav ... -
获取天气预报
2010-12-08 11:30 1024最近工作有用到web services,而这两天也比较有空,就 ... -
项目中常见的错误
2010-09-27 08:47 75805项目中遇到的错误(c9bcf64c) sql错误 找不到 ... -
单例模式(Singleton)
2010-09-25 22:51 1252BestUpon 写道 首先我们先 ... -
Java杂谈(十三)——ORM
2010-08-20 09:02 1120其实J2ee的规范指南 ... -
Java杂谈(十二)--JVM
2010-08-20 09:01 1034本来这次应该讲 ... -
Java杂谈(十一)--Spring
2010-08-20 09:01 893引用《Spring2.0技 ...
相关推荐
以下是一个基本的Java代码示例,演示如何解压缩ZIP文件: ```java import java.io.*; import java.util.zip.*; public class UnzipExample { public static void unzip(String zipFilePath, String destDirectory...
在Java编程语言中,解压缩ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包和部署等场景下。本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种...
首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件的基本工具。在ZIP格式的压缩包处理中,我们主要会用到`ZipInputStream`和`ZipEntry`这两个类。`ZipInputStream`是用于读取ZIP文件的输入流...
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。...通过上述知识点,开发者能够有效地在Java环境中进行ZIP文件的压缩与解压缩操作,满足实际项目需求。
一、Java打包压缩ZIP Java中的`java.util.zip`包提供了对ZIP文件的支持。主要涉及到的类有`ZipOutputStream`和`ZipEntry`。`ZipOutputStream`是用于创建ZIP文件的输出流,而`ZipEntry`则代表ZIP文件中的一个条目...
本话题主要聚焦于如何利用ant.jar来解压缩ZIP包。首先,你需要确保你的项目中已经引入了ant.jar。这通常可以通过Maven或Gradle等构建工具添加依赖来实现。如果你的项目不使用这些工具,你可以将ant.jar作为库文件...
java语言操作解压缩文件。 /** * 数据压缩 * * @param data * @return * @throws Exception */ public static byte[] compress(byte[] data) throws Exception { ByteArrayInputStream bais = new ...
在Java编程环境中,解压缩ZIP或RAR格式的文件是一项常见的任务,这主要涉及到I/O流、文件操作以及压缩和解压缩库的使用。本篇将深入讲解如何在Java中实现这个功能,同时会介绍一些相关的工具和源码。 首先,对于ZIP...
Java工具类ZIP解压缩Java工具类ZIP解压缩Java工具类ZIP解压缩
最后,`生成zip包代码.txt`和`解压缩zip包.txt`文件可能包含了具体的实现代码,而`需要用的jar包`可能是指在某些情况下,如使用第三方库时,可能需要引入额外的依赖项。例如,如果使用了Apache Commons Compress库,...
博文链接:https://peng-jian-ming.iteye.com/blog/190572
本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...
本篇文章将详细讲解如何使用Java来解压缩ZIP格式的压缩文件,特别是那些包含中文文件名的压缩包。我们将探讨相关API的使用,以及解决中文文件名在解压过程中可能出现的问题。 1. **Java的压缩与解压缩库**: Java...
### Java解压缩ZIP文件:深度解析与实践 #### 核心知识点概览: - **Java I/O与网络数据流统一接口**:Java的1.1版本提供了统一的接口来处理I/O数据流与网络数据流,这使得数据的压缩、传输和解压缩变得简单而高效...
JAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩...
本篇文章将深入探讨如何使用Java API来实现ZIP文件的解压缩,并提供详细的注释帮助理解代码逻辑。 首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件格式(如ZIP和GZIP)所需的所有类。其中...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在数据传输、存储优化和备份场景中。本实践项目围绕这个主题展开,包括源代码和相关的论文,为学习者提供了深入理解和应用Java压缩库的机会。以下...