JavaZIP文件压缩与解压缩.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaZIP文件压缩与解压缩

最近需要用到Java的zip文件压缩与解压缩,找了一堆的资料和参考代码,没有一个能够很好的解决问题。要不就是压缩出错,要不就是压缩后的文件目录组织不正确,要不就是中文乱码,总之问题一大堆。没办法只能自己编码搞定。 java里面有个包叫java.util.zip提供zip文件压缩,但是编码的时候非常不方便。编码量太多了,通过有哪些信誉好的足球投注网站,发现apache有个包提供一些简单的方法来实现zip文件的压缩与解压缩 HYPERLINK / \o / /。下载地址: HYPERLINK /bindownload.cgi \t _blank org.apache.tools.zip 下载下来解压缩后,该包中的ant.jar里面提供了zip文件压缩与解压缩的功能代码。在项目中引用该类库。 ? 要压缩成zip文件,涉及到的问题如下: 1.将要压缩的文件添加到zip文件包中。 2.组织好要压缩的文件目录与压缩后的zip文件目录一致。 3.文件名以及文件夹名中文字符编码。 4.解压缩zip文件,并将解压缩后的文件及文件夹的组织形式要与压缩前的一致。 ? 在设计该类的时候,我编写了一下几个方法: 第一个zip方法,将来填入要压缩的文件或文件夹路径,然后压缩成zip文件并保存到指定位置。代码如下: 1 /** 2 * 压缩文件或者文件夹 压缩采用gb2312编码,其它编码方式可能造成文件名与文件夹名使用中文的情况下压缩后为乱码。。。 3 * 4 * @param source 5 * 要压缩的文件或者文件夹 6 * 建议使用c:/abc或者c:/abc/aaa.txt这种形式来给定压缩路径 7 * 使用c:\\abc 或者c:\\abc\\aaa.txt这种形式来给定路径的话,可能导致出现压缩和解压缩路径意外故障。。。 8 * @param zipFileName 9 * 压缩后的zip文件名称 压缩后的目录组织与windows的zip压缩的目录组织相同。 10 * 会根据压缩的目录的名称,在压缩文件夹中创建一个改名的根目录, 其它压缩的文件和文件夹都在该目录下依照原来的文件目录组织形式 11 * @throws IOException 12 * 压缩文件的过程中可能会抛出IO异常,请自行处理该异常。 13 */ 14 ?public static void ZIP(String source, String zipFileName) 15 throws IOException { 16 ZipOutputStream zos = new ZipOutputStream(new File(zipFileName)); 17 18 // 设置压缩的时候文件名编码为gb2312 19 zos.setEncoding(gb2312); 20 // System.out.println(zos.getEncoding()); 21 22 File f = new File(source); 23 24 if (f.isDirectory()) { 25 // 如果直接压缩文件夹 26 ZIPDIR(source, zos, f.getName() + /);// 此处使用/来表示目录,如果使用\\来表示目录的话,会导致压缩后的文件目录组织形式在解压缩的时候不能正确识别。 27 } else { 28 // 如果直接压缩文件 29 ZIPDIR(f.getPath(), zos, new File(f.getParent()).getName() + /); 30 ZIPFile(f.getPath(), zos, new File(f.getParent()).getName() + / 31 + f.getName()); 32 } 33 34 zos.closeEntry(); 35 zos.close(); 36 } 为了很好的解决中文编码问题,这里在创建ZipOutputStream 输出流的时候就指定其编码为gb2312,这样无论将来是中文的文件名和文件夹,都可以被正确的识别,不会出现乱码的情况。 特别提醒大家注意的是,文件的路径使用的斜杠最好是/,如果用\\来表示路径的话,表面上看这是区分好了文件夹,其实在解压缩的时候zipfile对象就不能很好的

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档