[Java语言] java 中使用ZipInputStream或ZipFile解压ZIP文件!!
来源:互联网 发布:怎么查131458淘宝信誉 编辑:程序博客网 时间:2024/06/05 03:24
下面的两个例子分别演示通过 java.util.zip 包中的 ZipInputStream和 ZipFile 来解压ZIP文件,使用的都是http://javadt.com/forum.php?mod=viewthread&tid=217&extra=生成的javadt.zip文件,解压后文件不会解压成目录,而是ZIP中所有文件都在工程当前目录中。
使用 java.util.zip.ZipInputStream解压ZIP文件。
package javadt.code.javase;
import java.io.*;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;
public class JavadtUnzipDemo {
public static void main(String[] args) {
String zipname = "javadt.zip";
try {
FileInputStream fis = new FileInputStream(zipname);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
//getNextEntry()!=null时,ZipInputStream读取每个压缩文件,
while ((entry = zis.getNextEntry()) != null) {
System.out.println("Unzipping: " + entry.getName());
int size;
byte[] buffer = new byte[2048];
FileOutputStream fos = new FileOutputStream(entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(fos, buffer.length);
while ((size = zis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, size);
}
bos.flush();
bos.close();
}
zis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 java.util.zip.ZipFile解压ZIP文件。
package Javadt.code.javase;
import java.util.zip.ZipFile;
import java.util.zip.ZipEntry;
import java.util.Enumeration;
import java.io.*;
public class JavadtUnzipDemo2 {
public static void main(String[] args) {
String zipname = "javadt.zip";
try {
ZipFile zipFile = new ZipFile(zipname);
Enumeration enumeration = zipFile.entries();
while (enumeration.hasMoreElements()) {
ZipEntry zipEntry = (ZipEntry) enumeration.nextElement();
System.out.println("解压中...: " + zipEntry.getName());
BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(zipEntry));
int size;
byte[] buffer = new byte[2048];
FileOutputStream fos = new FileOutputStream(zipEntry.getName());
BufferedOutputStream bos = new BufferedOutputStream(fos, buffer.length);
while ((size = bis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, size);
}
bos.flush();
bos.close();
fos.close();
bis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面两个例子的运行结果都是:
解压中...: javadt.txt
如果ZIP里有多个文件,都会列出。在工程文件夹下会出现 javadt.txt 文件。
转载请注明:转自http://javadt.com
使用 java.util.zip.ZipInputStream解压ZIP文件。
package javadt.code.javase;
import java.io.*;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;
public class JavadtUnzipDemo {
public static void main(String[] args) {
String zipname = "javadt.zip";
try {
FileInputStream fis = new FileInputStream(zipname);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
//getNextEntry()!=null时,ZipInputStream读取每个压缩文件,
while ((entry = zis.getNextEntry()) != null) {
System.out.println("Unzipping: " + entry.getName());
int size;
byte[] buffer = new byte[2048];
FileOutputStream fos = new FileOutputStream(entry.getName());
BufferedOutputStream bos = new BufferedOutputStream(fos, buffer.length);
while ((size = zis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, size);
}
bos.flush();
bos.close();
}
zis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 java.util.zip.ZipFile解压ZIP文件。
package Javadt.code.javase;
import java.util.zip.ZipFile;
import java.util.zip.ZipEntry;
import java.util.Enumeration;
import java.io.*;
public class JavadtUnzipDemo2 {
public static void main(String[] args) {
String zipname = "javadt.zip";
try {
ZipFile zipFile = new ZipFile(zipname);
Enumeration enumeration = zipFile.entries();
while (enumeration.hasMoreElements()) {
ZipEntry zipEntry = (ZipEntry) enumeration.nextElement();
System.out.println("解压中...: " + zipEntry.getName());
BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(zipEntry));
int size;
byte[] buffer = new byte[2048];
FileOutputStream fos = new FileOutputStream(zipEntry.getName());
BufferedOutputStream bos = new BufferedOutputStream(fos, buffer.length);
while ((size = bis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, size);
}
bos.flush();
bos.close();
fos.close();
bis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面两个例子的运行结果都是:
解压中...: javadt.txt
如果ZIP里有多个文件,都会列出。在工程文件夹下会出现 javadt.txt 文件。
转载请注明:转自http://javadt.com
- [Java语言] java 中使用ZipInputStream或ZipFile解压ZIP文件!!
- 在Java代码中使用ZipFile解压zip文件
- JAVA ZipFile 解压zip
- ZipFile v.s. ZipInputStream in java.util.zip
- java 解zip文件(ZipInputStream)
- java 解zip文件(ZipFile)
- java语言SDK中ZipInputStream
- 使用Java解压ZIP文件
- Java IO 之 ZipFile/ZipInputStream/ZipOutputStream
- Java IO操作——掌握压缩流的使用(ZipOutputStream、ZipFile、ZipInputStream)[java.util包中]
- java.util.zip.ZipInputStream翻译
- java.util.zip类 ZipInputStream
- Java解压zip文件
- zip解压文件java
- java-zip解压文件
- JAVA解压ZIP文件
- Java解压zip文件
- java-解压zip文件
- 高性能mysql读书笔记
- 成功者的思维方式
- Android的NDK开发(1)————Android JNI简介与调用流程
- QML 基本内容介绍
- android 引用工程作为类库
- [Java语言] java 中使用ZipInputStream或ZipFile解压ZIP文件!!
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- OpenCV学习笔记(二十六)——小试SVM算法ml
- 基于EHCache实现缓存去重
- 有的事情做得很没有意思,
- Android的NDK开发(3)————JNI数据类型的详解
- ENVI 5的试用-更方便快捷的ENVI功能扩展
- POI Excel 07 关于字体样式补充,自定义调色板
- Android的NDK开发(4)————JNI数据结构之JNINativeMethod