JAvaファイルの解凍
1897 ワード
package test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class UnZip {
/**
* @param args
*/
static final int BUFFER = 2048;
@SuppressWarnings("unchecked")
public static void main(String[] args) {
try{
String filename = "D:/1.zip";
int index1=filename.lastIndexOf(".");
String zipName=filename.substring(0,index1);
ZipFile zipFile = new ZipFile(filename);
Enumeration enu = zipFile.entries();
new File(zipName).mkdirs();
while(enu.hasMoreElements()){
ZipEntry zipEntry = (ZipEntry)enu.nextElement();
if(zipEntry.isDirectory()){
new File(zipName+"/"+zipEntry.getName()).mkdirs();
continue;
}
BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(zipEntry));
File file = new File(zipName+"/"+zipEntry.getName());
File parent = file.getParentFile();
if(parent != null && !parent.exists()){
parent.mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos,BUFFER);
byte[] array = new byte[BUFFER];
while((bis.read(array, 0, BUFFER))!=-1){
bos.write(array, 0, BUFFER);
}
bos.flush();
bos.close();
bis.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}