Java解压zip文件Java解压zip文件
java解压zip文件(由于zip包使用Winra工具打的包,他的默认编码格式是
gbk,所以在解压zip包中的中文文件明的文件的时候就会出现
IllegalArguementException异常,解决方法就是在ZipInputStream 的
getUTF8String()方法中加上如下代码 String s=new
String(b,off,len,"gbk"); return s;编译后将ZipInputStream 的class文件
覆盖jdk\jre\rt.jar中java.util....
Java解压zip文件
java解压zip文件(由于zip包使用Winra工具打的包,他的默认编码格式是
gbk,所以在解压zip包中的中文文件明的文件的时候就会出现
IllegalArguementException异常,解决方法就是在ZipInputStream 的
getUTF8String()方法中加上如下代码 String s=new
String(b,off,len,"gbk"); return s;编译后将ZipInputStream 的class文件
覆盖jdk\jre\rt.jar中java.util.zip包中的ZipInputStream.class)
try {
// ZipInputStream zis = new ZipInputStream(new FileInputStream(
// "Archive.zip"));
ZipInputStream zis = new ZipInputStream(new FileInputStream("e.zip"));
// ZipFile z=new ZipFile(Archive.zip);
ZipEntry ze = null;
while ((ze=zis.getNextEntry()) != null) {
if (!ze.isDirectory()) {
System.out.println(ze.getName()); // File child = new File(ze.getName());
String filename=ze.getName();
int at=filename.lastIndexOf("/");
System.out.println(at);
if(at!=-1)
{
String path=filename.substring(0, at);
File pa=new File(path);
pa.mkdirs();
FileOutputStream outputStream = new FileOutputStream(pa+filename.substring(at));
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = zis.read(buffer)) > 0) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
outputStream.close();
}else
{
FileOutputStream outputStream = new FileOutputStream(filename);
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = zis.read(buffer)) > 0) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
outputStream.close();
}
}
}
zis.close();
} catch (Exception e) {
e.printStackTrace();
}
本文档为【Java解压zip文件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。