- 浏览: 446943 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 12360itext版本:5.4.0 下载 ... -
jax-ws webservice编程
2013-01-29 16:07 64471.理解JAX-WS 1.1JAX-WS概述 JAX ... -
was6.1修改java编译版本
2013-01-11 09:06 1905jsp中如果用到了jdk1.5的新特性,在was6.1下编译会 ... -
eclipse生成javadoc乱码解决方式
2013-01-11 09:05 807在Extra javadoc options下增加如下参数 j ... -
Eclipse Jee项目开发前准备 (转)
2012-12-31 09:06 978Eclipse Jee项目编码设置 Window-> ... -
SVN 签出源码 Struts Spring Hibernate
2011-09-15 09:38 1149SVN 签出源码 Struts Spring ... -
几种Java数据库连接池实现(一)
2011-08-31 14:15 1641几种Java数据库连接池实现(一) (一) package s ... -
win7下硬盘安装ubuntu
2011-08-22 20:36 959安装方法见附件 -
比较好的java网站[推荐]
2011-04-07 12:42 15621. The Source for Java Technol ... -
jad反编译jar文件
2011-02-15 16:56 1456//首先使用jar命令将jar文件解压缩到classes目录 ... -
接口与抽象类区别
2011-01-19 15:21 612接口与抽象类区别 《设计模式Java手册》中的,觉得写得很简 ... -
正则入门
2010-12-20 13:21 844< type="text/javascript ... -
序列键生成器与单例及多例模式
2010-12-13 10:37 1059在一个关系数据库中,所有的数据都是存储在表里,而每一个表都有一 ... -
Java中日期格式转换
2010-12-10 15:35 1469Java中日期格式转换 /** * 字符串转换为jav ... -
获取天气预报
2010-12-08 11:30 998最近工作有用到web services,而这两天也比较有空,就 ... -
项目中常见的错误
2010-09-27 08:47 75759项目中遇到的错误(c9bcf64c) sql错误 找不到 ... -
单例模式(Singleton)
2010-09-25 22:51 1219BestUpon 写道 首先我们先 ... -
Java杂谈(十三)——ORM
2010-08-20 09:02 1064其实J2ee的规范指南 ... -
Java杂谈(十二)--JVM
2010-08-20 09:01 1008本来这次应该讲 ... -
Java杂谈(十一)--Spring
2010-08-20 09:01 865引用《Spring2.0技 ...
相关推荐
java 解压缩zip文件 java 解压缩zip文件 java 解压缩zip文件
java解压缩zip代码与用到的jar包
JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码
java 中压缩ZIP格式源码,仅供参考。
java生成.zip包,解压缩.zip java生成.zip包,解压缩.zip
java打包压缩ZIP 里面详细讲解了如何将一个文件打包 如何解压一个包
java语言操作解压缩文件。 /** * 数据压缩 * * @param data * @return * @throws Exception */ public static byte[] compress(byte[] data) throws Exception { ByteArrayInputStream bais = new ...
Java工具类ZIP解压缩Java工具类ZIP解压缩Java工具类ZIP解压缩
java 实现压缩与解压缩ZIP .docjava 实现压缩与解压缩ZIP .docjava 实现压缩与解压缩ZIP .docjava 实现压缩与解压缩ZIP .doc
博文链接:https://peng-jian-ming.iteye.com/blog/190572
JAVA实现解压缩ZIP格式的压缩文件(含中文名文件)的完整DEMO,含用到的JAR包。
使用java实现解压缩zip文件,有详细的注释。
JAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩...
使用Java核心API实现单文件/多文件/整个目录的压缩/解压缩功能,由于自带API(1.6)不支持指定编码方式,因此中文会出现乱码(1.7貌似已经支持指定编码方式),所以还写了一个基于ant包的压缩/解压缩代码。
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文).zip java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文).zip java毕业设计——java文件压缩与解压缩实践设计与开发(源代码+论文)....
zip格式是一种免费的压缩文件格式,我们可以通过java类库编写函数来解压缩它,实现winwar这类软件的功能。