- 浏览: 20213 次
- 性别:
- 来自: 武汉
文章分类
最新评论
package com.me.admin.test;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* 读取压缩包(.zip)里面的文件
*
* @author dj
*
*/
public class DecZip {
public static void main(String args[]) {
String file = "E://flipbook.zip";
String saveRootDirectory="E://test/";
zipFileRead(file,saveRootDirectory);
}
private static void zipFileRead(String file,String saveRootDirectory) {
try {
ZipFile zipFile = new ZipFile(file);
@SuppressWarnings("unchecked")
Enumeration<ZipEntry> enu = (Enumeration<ZipEntry>) zipFile.entries();
while (enu.hasMoreElements()) {
ZipEntry zipElement = (ZipEntry) enu.nextElement();
InputStream read = zipFile.getInputStream(zipElement);
String fileName = zipElement.getName();
if (fileName != null && fileName.indexOf(".") != -1) {//是否为文件 (文件带有路径如:/images/a.jpg)
execute(zipElement,read,saveRootDirectory);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static void execute(ZipEntry ze, InputStream read,String saveRootDirectory)
throws FileNotFoundException, IOException {
//如果只读取图片,自行判断就OK.
String fileName = ze.getName();
// if(fileName.lastIndexOf(".jpg")!= -1 || fileName.lastIndexOf(".bmp")!= -1
// || fileName.lastIndexOf(".jpeg")!= -1){//指定要解压出来的文件格式(这些格式可抽取放置在集合或String数组通过参数传递进来,方法更通用)
File file = new File(saveRootDirectory + fileName);
if (!file.exists()) {
File rootDirectoryFile = new File(file.getParent());
//创建目录
if (!rootDirectoryFile.exists()) {
boolean ifSuccess = rootDirectoryFile.mkdirs();
if (ifSuccess) {
System.out.println("文件夹创建成功!");
} else {
System.out.println("文件创建失败!");
}
}
//创建文件
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//写入文件
BufferedOutputStream write = new BufferedOutputStream(new FileOutputStream(file));
int cha = 0;
while ((cha = read.read()) != -1) {
write.write(cha);
}
//要注意IO流关闭的先后顺序
write.flush();
write.close();
read.close();
// }
}
}
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* 读取压缩包(.zip)里面的文件
*
* @author dj
*
*/
public class DecZip {
public static void main(String args[]) {
String file = "E://flipbook.zip";
String saveRootDirectory="E://test/";
zipFileRead(file,saveRootDirectory);
}
private static void zipFileRead(String file,String saveRootDirectory) {
try {
ZipFile zipFile = new ZipFile(file);
@SuppressWarnings("unchecked")
Enumeration<ZipEntry> enu = (Enumeration<ZipEntry>) zipFile.entries();
while (enu.hasMoreElements()) {
ZipEntry zipElement = (ZipEntry) enu.nextElement();
InputStream read = zipFile.getInputStream(zipElement);
String fileName = zipElement.getName();
if (fileName != null && fileName.indexOf(".") != -1) {//是否为文件 (文件带有路径如:/images/a.jpg)
execute(zipElement,read,saveRootDirectory);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static void execute(ZipEntry ze, InputStream read,String saveRootDirectory)
throws FileNotFoundException, IOException {
//如果只读取图片,自行判断就OK.
String fileName = ze.getName();
// if(fileName.lastIndexOf(".jpg")!= -1 || fileName.lastIndexOf(".bmp")!= -1
// || fileName.lastIndexOf(".jpeg")!= -1){//指定要解压出来的文件格式(这些格式可抽取放置在集合或String数组通过参数传递进来,方法更通用)
File file = new File(saveRootDirectory + fileName);
if (!file.exists()) {
File rootDirectoryFile = new File(file.getParent());
//创建目录
if (!rootDirectoryFile.exists()) {
boolean ifSuccess = rootDirectoryFile.mkdirs();
if (ifSuccess) {
System.out.println("文件夹创建成功!");
} else {
System.out.println("文件创建失败!");
}
}
//创建文件
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//写入文件
BufferedOutputStream write = new BufferedOutputStream(new FileOutputStream(file));
int cha = 0;
while ((cha = read.read()) != -1) {
write.write(cha);
}
//要注意IO流关闭的先后顺序
write.flush();
write.close();
read.close();
// }
}
}
发表评论
-
pdf生成
2013-05-20 10:40 955pd4ml技术html导出pdf,支持中文,兼容Linux ... -
谷歌验证码
2013-04-09 12:12 948原创随笔】强大的谷歌开源免费验证码reCAPTCHA ... -
spring mvc
2013-01-14 17:33 594Spring MVC 框架搭建及详解 您的评价: ... -
实现基于Spring框架应用的权限控制系统
2013-01-02 11:34 707实现基于Spring框架应用 ... -
url重写
2012-11-19 17:26 792>猎头职位: 陕西: 西安:senior java en ... -
发送邮件
2012-11-15 15:36 563package coffeecatwebmail; impo ... -
获得ip
2012-11-13 16:24 461public class IP { /** * * ... -
怎么修改mysql数据库的密码
2012-11-12 10:01 506GRANT ALL PRIVILEGES ON *.* TO ... -
密码加密
2012-11-08 10:55 474public class MD5 { public stat ... -
自己做的上線的網站
2012-10-09 10:12 586http://www.polyvision.com.hk/ ... -
有用文檔
2012-09-13 18:18 545<pre name="code" c ... -
java中的文件上傳
2012-08-06 14:38 645[Java] Spring2文件上传 ... -
關於java學習的友情鏈接
2012-08-06 14:26 416http://www.g4studio.org/forum-5 ... -
object C
2012-07-27 17:37 574http://www.verycd.com/entrie ... -
Struts2基于注解的Action配置
2012-07-18 16:49 636Struts2基于注解的Action配置 ... -
时间转换的单例模式
2012-07-18 10:21 630/* *时间转换 */ package com.loko ... -
s2s2h3搭建
2012-07-11 18:08 632SSH 环境搭建完整教程 一、SSH ... -
ssh搭建
2012-07-11 18:00 788分享 返回分享首页» 分享 ... -
stuts2配置
2012-07-11 17:49 495struts2环境配置 struts2框架 ... -
转码的方案
2012-07-10 17:48 4Eclipse编码格式修改 2010-07-14 2:54 ...
相关推荐
"Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...
本文将详细探讨如何在C++中以编程方式读写ZIP文件。 首先,你需要一个库来处理ZIP文件,因为C++标准库并不直接支持ZIP操作。一种常用的库是libzip,它提供了读取、创建、修改和删除ZIP文件的功能。安装libzip后,你...
在Java编程环境中,读取ZIP文件是一项常见的任务,特别是在处理归档数据或打包资源时。以下将详细讲解如何使用Java来实现这一功能。 首先,Java提供了`java.util.zip`包,该包包含了处理ZIP文件所需的类,如`...
在读取ZIP文件时,我们首先需要打开ZIP文件并创建一个ZIP文件对象。然后,通过迭代这个对象,我们可以访问每个条目(即压缩的文件或目录),获取其文件名和内容。关键在于正确处理文件名的编码。在某些情况下,...
`zip.js`是一个轻量级的库,它提供了在浏览器环境中读取、创建和操作ZIP文件的功能。本篇文章将深入探讨如何使用`zip.js`来解压并读取ZIP文件。 首先,为了使用`zip.js`,你需要将其引入到你的项目中。如果你使用的...
本文将深入探讨如何利用ZipLib库在C++中进行ZIP文件的读写操作。ZipLib是一个用C编写的库,用于处理ZIP档案,而我们的任务是通过在C++中对其进行封装,以便更方便地进行压缩和解压缩。 首先,我们需要理解ZIP文件...
Flex Air压缩和读取zip文件是一项在开发过程中经常会遇到的任务,尤其在处理大量数据或文件传输时。这个主题主要涉及到Flex、Adobe AIR以及ZipArchive库的使用。让我们深入了解一下这些概念和技术。 首先,Flex是一...
- 调用 `ReadZip` 方法来读取ZIP文件的信息。 - ```pascal VCLUnZip1.ReadZip; ``` 5. **设置解压目标目录:** - 使用 `DestDir` 属性指定解压后文件的目标目录。 - ```pascal VCLUnZip1.DestDir := desPath...
`递归读取zip文件及其子文件结构`这个标题指的是一个功能强大的工具类,它能够帮助开发者遍历并访问ZIP文件内的所有文件和子目录,包括嵌套的ZIP文件。这个Java工具类设计得易于使用,可以直接集成到项目中,为处理...
CzipFile类提供了读取和操作ZIP文件的功能,允许开发者在应用程序中解压和访问ZIP文件内的内容。 1. **打开ZIP文件** 要读取ZIP文件,首先需要创建CzipFile对象。这通常通过两阶段构造函数完成,传入文件服务器...
Zlib库通过其贡献模块minizip提供了对ZIP文件的读写支持。 描述中提到,这个项目是基于Zlib库1.2.3版本的Contrib子目录下的minizip程序。minizip是一个简单的接口,允许开发者用C语言编写应用程序来操作ZIP文件。...
JSZip是一款纯JavaScript编写的库,它允许开发者在浏览器端创建、读取和编辑ZIP文件。这个库的强大之处在于,无需任何服务器端支持,就可以在客户端处理ZIP文件,这对于前端开发者来说是一个非常实用的工具。下面...
5. **电源故障**:在读写ZIP文件的过程中突然断电,可能会造成文件系统错误,导致ZIP文件损坏。 **检测ZIP文件损坏的方法** 1. **尝试解压**:最简单的方法是尝试用常用的压缩软件(如WinRAR、7-Zip)进行解压。...
Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...
本文将深入探讨如何解压ZIP文件并读取其中的详细信息,包括文件名、日期时间戳、文件大小等。我们将通过一个名为`unzip.c`的C语言源码来讲解这一过程。 首先,我们需要了解ZIP文件格式。ZIP是一种容器格式,它将多...
1. **读取ZIP文件头**:解压过程的第一步是识别ZIP文件的起始标识符,即`PK\003\004`。这表示ZIP文件的中央目录头。找到此标志后,你可以解析后续的字段以获取关于文件的信息。 2. **解析中央目录**:在找到目录头...
在生成或读取ZIP文件时,要确保输入来源的安全性,防止可能的文件注入攻击。在添加文件时,验证文件路径的有效性,避免添加到不应该包含的路径。 9. **错误处理**: 在操作ZIP文件时,应适当地处理可能出现的错误...
4. `open(name, mode='r')`:打开ZIP文件中的一个条目,返回一个文件对象,可以进行读写操作。 ```python with zip_obj.open('file_name.txt', 'r') as file_in_zip: content = file_in_zip.read() print...
使用这个类,你可以打开一个ZIP文件,获取其中的文件列表,读取文件内容,并添加或删除文件。 以下是一些关于如何使用ZipArchive类的基本操作: 1. 打开ZIP文件: ```php $zip = new ZipArchive(); if ($zip->open...
Java的`java.util.zip`包提供了对ZIP文件的支持,包括`ZipInputStream`和`ZipOutputStream`类用于读写ZIP文件,以及`ZipEntry`类来代表ZIP文件中的单个条目。当我们尝试用这些类解压含有中文名的文件时,如果未正确...