下面的两个例子分别演示通过 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