package com.cool.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.cool.io.zip.ZipEntry;
import com.cool.io.zip.ZipInputStream;
public class ZipInputStreamTest {
public static void main(String[] args) {
InputStream is = null;
OutputStream os = null;
ZipInputStream zis = null;
try {
File file = new File("d:" + File.separator + "123.zip");
is = new FileInputStream(file);
zis = new ZipInputStream(is);
byte b[] = new byte[1024];
int len;
ZipEntry zipEntry;
while (null != (zipEntry = zis.getNextEntry())) {
System.out.println(zipEntry.getName());
os = new FileOutputStream("d:" + File.separator + zipEntry.getName());
while ((len = zis.read(b)) > 0) {
os.write(b, 0, len);
}
zis.closeEntry();
os.close();
}
} catch (FileNotFoundException e) {
} catch (IOException e) {
} finally {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
if (zis != null) {
zis.close();
}
} catch (IOException e) {
}
}
}
}
1.功能:解压zip包
2. 下载的以下源码:DeflaterOutputStream,InflaterInputStream,ZipConstants,ZipEntry,ZipInputStream,ZipOutputStream到工程,修改下package路径
3.添加以下代码到ZipInputStream getUTF8String 第一行
try {
String s = new String(b, off, len, "gbk");
return s;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
4删除 ZipEntry类里的如下代码
static {
/* Zip library is loaded from System.initializeSystemClass */
// initIDs();
}
5.本文参照了以下文章