1解压单个文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
public static void main(String[] args) {
String gzFileStr = "d:" + File.separator + "hello.zip";
File file = new File(gzFileStr);
try (ZipFile zf = new ZipFile(gzFileStr);){
Enumeration<? extends ZipEntry> entries = zf.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
String zipEntryName = entry.getName();
System.out.println(zipEntryName);
FileOutputStream fileOutputStream =
new FileOutputStream(file.getParent()+"\\"+"unzip"+zipEntryName);
InputStream inputStream = zf.getInputStream(entry);
byte[] b = new byte[1024*1024*5];
int length = 0;
while ((length = inputStream.read(b)) != -1) {
fileOutputStream.write(b, 0, length);
}
fileOutputStream.close();
inputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
2.解压多个文件
public static void main(String[] args) throws IOException{
File file = new File("d:" + File.separator + "zipFile.zip");
File outFile = null;
ZipFile zipFile = new ZipFile(file);
ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));
ZipEntry entry = null;
InputStream input = null;
OutputStream output = null;
while((entry = zipInput.getNextEntry()) != null){
System.out.println("解压缩" + entry.getName() + "文件");//entry.getName()获得压缩包内的文件及文件路径(aaaa/bb.txt)
outFile = new File("d:" + File.separator + entry.getName());
if(!outFile.getParentFile().exists()){
outFile.getParentFile().mkdir();
}
if(!outFile.exists()){
outFile.createNewFile();
}
input = zipFile.getInputStream(entry);
output = new FileOutputStream(outFile);
int temp = 0;
while((temp = input.read()) != -1){
output.write(temp);
}
input.close();
output.close();
}
}