首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 解压zip 中文有关问题完美解决

2012-12-24 
java 解压zip 中文问题完美解决用过java做压缩或解压的都知道,jdk提供的zip只能按UTF-8格式处理,前些天写

java 解压zip 中文问题完美解决
   用过java做压缩或解压的都知道,jdk提供的zip只能按UTF-8格式处理,前些天写过一篇压缩zip的中文问题,就是使用ant包里的类,并且在linux上稍做些修改也能兼容,但是,如果是解压一个包含中文文件名的zip包呢? 此时如果使用jdk自带的zip包,解压时如果文件名有中文,会抱非法参数异常,而如果使用ant包。会发现ant.jar里并没有ZipInputStream,怎么办?
    看来,我们还是得使用jdk里的zip包了,我们的问题仅仅是需要支持GBK,所以修改应该不会很大,所以我们先找出所有相关的类,以下类请自行从jdk的src.zip里提取




    initIDs()方法是在ZipEntry类的static里调用的,目前还不大清楚这个到底做什么用,我们只需要在ZipEntry类中找到这个static模块,注释掉就行了,





  1 楼 sdyjmc 2011-08-22   最好对传入的输出路径做判断,另外

File f = new File(outputDirectory + File.separator + z.getName());
System.out.println(f.getAbsolutePath());
if(!f.getParentFile().exists()){
f.getParentFile().mkdirs();
}
f.createNewFile();

/*initIDs();*/ 也要注释掉。
static {
/* Zip library is loaded from System.initializeSystemClass */
/*initIDs();*/
    }

热点排行