- 浏览: 156446 次
- 性别:
- 来自: 株洲
文章分类
最新评论
-
cckfyezi:
上传压缩包不给密码 逗谁玩呢
Spring Quartz 动态设置cronExpression -
samgogo:
密码是多少呀?
xls&xlsx 导入、导出、解析(笔记) -
ls2005nba:
密码是多少呀?
xls&xlsx 导入、导出、解析(笔记) -
liuweihug:
jquery message tooltip告警提示信息展示控 ...
jQuery 消息提示框 -
文昌平蓝杰:
good,万分感谢呀,亲,
在eclipse里编写android代码时很卡,解决方案
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; public class ZipTest { static final int BUFFER = 2048; public static void main(String argv[]) throws Exception{ read(); } static void write() { try { BufferedInputStream origin = null; FileOutputStream dest = new FileOutputStream("f:\\mm\\m.zip"); ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream( dest)); byte data[] = new byte[BUFFER]; File f = new File("f:\\mm"); 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(); } } @SuppressWarnings("unchecked") static void read() { try { String fileName = "f:/mm/mm.zip"; String filePath = "f:/mm/"; ZipFile zipFile = new ZipFile(fileName); Enumeration emu = zipFile.entries(); 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(); } } }
//
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Enumeration; import cn.llg.zip.ZipEntry; import cn.llg.zip.ZipFile; import cn.llg.zip.ZipOutputStream; public class YsZipUtil { static final int BUFFER = 2048; /** * 压缩文件/文件夹 * @param zipFileFullName 压缩后的ZIP文件的全路径名称 * @param inputFileFullName 需要压缩的文件/文件夹 全路径名称 * @throws Exception */ public static void zip(String zipFileFullName, String inputFileFullName) throws Exception { File zip = new File(zipFileFullName); File parentDir = zip.getParentFile(); char pathSeparator = File.pathSeparatorChar; zip(zip, parentDir, new File[]{new File(inputFileFullName)}, pathSeparator); } /** * Recursively zips a set of root entries into a zipfile, compressing the * contents. * * @param zipFile target zip file. * @param parentDir a directory containing source files to zip. * @param sources an array of files and/or directories to zip. * @param pathSeparator path separator for zip entries. * * @throws IOException */ public static void zip( File zipFile, File parentDir, File[] sources, char pathSeparator) throws IOException { String stripPath = (parentDir != null) ? parentDir.getPath() : ""; if (stripPath.length() > 0 && !stripPath.endsWith(File.separator)) { stripPath += File.separator; } ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile)); out.setMethod(ZipOutputStream.DEFLATED); try { // something like an Ant directory scanner wouldn't hurt here for (int i = 0; i < sources.length; i++) { if (!sources[i].exists()) { throw new IllegalArgumentException( "File or directory does not exist: " + sources[i]); } if (sources[i].isDirectory()) { zipDirectory(out, stripPath, sources[i], pathSeparator); } else { zipFile(out, stripPath, sources[i], pathSeparator); } } } finally { out.close(); } } /** * Uses code fragments from Jakarta-Ant, Copyright: Apache Software * Foundation. */ private static void zipDirectory(ZipOutputStream out, String stripPath, File dir, char pathSeparator) throws IOException { String[] entries = dir.list(); if (entries == null || entries.length == 0) { return; } // recurse via entries for (int i = 0; i < entries.length; i++) { File file = new File(dir, entries[i]); if (file.isDirectory()) { zipDirectory(out, stripPath, file, pathSeparator); } else { zipFile(out, stripPath, file, pathSeparator); } } } /** * Uses code fragments from Jakarta-Ant, Copyright: Apache Software * Foundation. */ private static void zipFile( ZipOutputStream out, String stripPath, File file, char pathSeparator) throws IOException { ZipEntry ze = new ZipEntry(processPath(file.getPath(), stripPath, pathSeparator)); ze.setTime(file.lastModified()); out.putNextEntry(ze); byte[] buffer = new byte[2 * BUFFER]; BufferedInputStream in = new BufferedInputStream(new FileInputStream(file), buffer.length); try { int count = 0; while ((count = in.read(buffer, 0, buffer.length)) >= 0) { if (count != 0) { out.write(buffer, 0, count); } } } finally { in.close(); } } private static String processPath( String path, String stripPath, char pathSeparator) { if (!path.startsWith(stripPath)) { throw new IllegalArgumentException( "Invalid entry: " + path + "; expected to start with " + stripPath); } return path.substring(stripPath.length()).replace( File.separatorChar, pathSeparator); } /** * 解压缩文件 * @param zipFileName 压缩文件,全路径 * @param outputDirectory 解压缩到哪个目录 */ public static void unzip(String zipFileName, String outputDirectory) { try { BufferedOutputStream dest = null; BufferedInputStream is = null; ZipEntry entry; java.io.File f = new java.io.File(outputDirectory); if (f.exists() == false) { f.mkdirs();// 建立解压缩的目录 } ZipFile zipfile = new ZipFile(zipFileName); Enumeration<?> e = zipfile.getEntries(); while (e.hasMoreElements()) { entry = (ZipEntry) e.nextElement(); System.out.println("Extracting: " + entry.getName()); if (entry.isDirectory()) { File theDir = new File(outputDirectory + File.separator + entry.getName()); if (theDir.exists() == false) { theDir.mkdirs(); } } else { File theFile = new File(outputDirectory + File.separator + entry.getName()); if (theFile.getParentFile().exists() == false) { theFile.getParentFile().mkdirs(); } is = new BufferedInputStream (zipfile.getInputStream(entry)); int count; byte data[] = new byte[BUFFER]; FileOutputStream fos = new FileOutputStream(outputDirectory + File.separator + entry.getName()); dest = new BufferedOutputStream(fos, BUFFER); while ((count = is.read(data, 0, BUFFER)) != -1) { dest.write(data, 0, count); } dest.flush(); dest.close(); is.close(); } } } catch (Exception e) { e.printStackTrace(); } } public static void main(String s[]){ try { //压缩 // YsZipUtil.zip("e:\\model.zip", "e:\\复件java编写规范.doc"); //解压 YsZipUtil.unzip("f:/mm/mm.zip", "f:/mm/"); } catch (Exception e) { e.printStackTrace(); System.out.print("zip failed!"); } } }
- zip.jar (1.2 MB)
- 下载次数: 8
- src-zip.rar (26.8 KB)
- 下载次数: 1
发表评论
-
tomcat 禁止用IP访问工程的配置
2015-12-24 17:34 650<Host name=www.abc.co ... -
HTML特殊字符过滤器
2015-12-08 14:40 1033/** * HTML标签过滤,防止用户恶意提交带H ... -
JAVA 日期加减
2015-11-19 15:28 2980/** * 计算前一天 、后一天 * ... -
POI取得Cell的字符串(String)值
2015-11-12 15:56 983public final static String DA ... -
打成jar包 在命令行下执行java工程
2015-01-21 13:53 1008来自转载http://blog.csdn.ne ... -
json、javaBean、xml互转的几种工具介绍
2014-06-16 16:54 596参考: http://blog.csdn.net/sdyy3 ... -
JAVA取星期几
2014-01-21 10:38 736import java.text.ParseExcepti ... -
Properties 操作
2013-02-28 16:18 727import java.io.FileInputStrea ... -
JAVA 取上个月、当月第一天、当月最后一天
2012-09-25 11:17 12523/**取上个月*/ public void test1( ... -
JAVA 数字格式化大全
2012-05-21 10:22 1472package formatnumber; impo ... -
xls&xlsx 导入、导出、解析(笔记)
2012-05-18 23:27 6074/** * excel文件导入、导出、下载工具 ... -
一个简单的JAVA定时器
2011-07-01 12:42 1200import java.util.concurrent ... -
log4j 配置文件详解
2011-06-22 11:43 1006一、介绍 Log4j是Apache的一个开放源代码项目,通过 ... -
MD5 DES BASE64加密 解密
2011-04-02 00:16 1451import java.security.MessageD ... -
httpClient 文件上传
2011-03-31 17:57 1881import java.io.File; import ... -
httpClient入门
2011-03-31 10:53 1188package filter.test; impor ... -
JAVA 给文件追加内容
2011-03-07 13:43 1051import java.io.BufferedWriter ... -
XML 操作
2011-02-15 11:36 634public class XMLUtil { ... -
简繁转换
2011-01-14 11:38 1394package com.book.util; /** ... -
生成动态长度的随机密码
2010-11-19 16:30 901package com.book.util; imp ...
相关推荐
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
Java操作ZIP文件,特别是涉及到加解密码的环节,是一项常见的任务。在Java中,我们可以使用标准的`java.util.zip`库来处理基本的ZIP文件操作,但若涉及到加密和解密,就需要借助第三方库,例如`Zip4j`。本文将深入...
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...
winszipaes是Java语言下的ZIP文件操作接口,支持密码,但源代码不支持中文,该jar包对源码作了一点修改,使其支持中文,修改信息可以参照我的博客http://blog.csdn.net/zhangyihui1986/article/details/7724229或者...
java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩
在Java编程环境中,读取ZIP文件是一项...通过熟练掌握`java.util.zip`包中的类,你可以轻松应对各种ZIP文件操作。在学习和参考项目示例源代码时,确保理解每一步的作用,这将有助于你在实际工作中更好地应用这些知识。
通过上述步骤,可以实现基于Java向ZIP压缩包追加文件的功能,虽然这个过程涉及解压和再压缩,但它是最常见的解决方案,因为Java的标准库不直接支持追加操作。在实际应用中,可以根据具体需求进行优化和调整,以满足...
在IT行业中,尤其是在软件开发领域,打包文件成压缩格式如ZIP是常见的操作。Java作为一种广泛使用的编程语言,提供了丰富的API来处理这样的任务。本篇将深入讲解如何使用Java实现将文件打包成ZIP的过程,主要围绕...
在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对ZIP文件格式的理解。本文将深入探讨如何使用Java实现这一功能,同时也会提及`UnZip.java`和`UnZip2.java`这两个文件可能包含的实现...
Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...
在Java编程语言中,创建ZIP压缩包是一项常见的任务,特别是在软件开发中,如构建Web应用程序。本资源提供了一种解决方案,解决了使用Java打zip包时可能会遇到的中文乱码和包含空文件的问题。以下是关于这个主题的...
在Java中,`java.util.zip`包提供了对ZIP文件的基本操作,但默认使用的是平台默认的字符集,这可能在跨平台操作时引发乱码问题。 为了解决这个中文乱码问题,我们需要在创建ZipEntry时指定合适的字符集,通常是UTF-...
这种方法减少了磁盘空间的占用,提高了处理效率,特别适用于处理大文件或需要高效操作ZIP文件的场景。在实际开发中,根据具体需求,可以进一步优化这个代码,比如添加错误处理机制,或者支持替换多个文件。
### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....
标题中的"find_java.zip"表明这是一个与Java编程语言和寻找Java环境有关的压缩文件。描述中的重复信息"find_java.zip"可能是指该压缩包的主要功能是查找或验证系统中的Java安装位置。标签"find_java"进一步确认了这...
Java实现Zip压缩文件操作的工具类 文章介绍:https://blog.csdn.net/rongbo91/article/details/117747042 (可作为Jar依赖包直接使用) 1、项目使用前,请进入rdc-bom目录下,执行mvn clean install命令 2、可...