下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用Java实现文件的压缩和解压缩在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;功能:zip压缩、解压说明:本程序通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能.问题:由于java.util.zip包并不支持汉字,当zip文件中有名字为中文的文件时就会出现异常:"Exception in thread "main " java.lang.IllegalArgumentException at java.util.z
2、ip.ZipInputStream.getUTF8String(ZipInputStream.java:285)解决:方法1、修改import java.util.zip.ZipInputStream和ZipOutputStream.java.util.zip只支持UTF-8,Ant里面可以指定编码.方法2、使用Apache Ant里提供的zip工具。不使用java.util.zip的包,把ant.jar放到classpath中.程序中使用import org.apache.tools.zip.*;仅供编程学习参考.代码如下:java view plaincopyimport java.io.
3、*;import java.util.zip.*;/*author Winty*Usage:* 压缩:java Zip -zip "directoryName"* 解压:java Zip -unzip "fileName.zip"*/public class Zipprivate ZipInputStream zipIn; /解压Zipprivate ZipOutputStream zipOut; /压缩Zipprivate ZipEntry zipEntry;private static int bufSize; /size of bytespriva
4、te byte buf;private int readedBytes;public Zip()this(512);public Zip(int bufSize)this.bufSize = bufSize;this.buf = new bytethis.bufSize;/压缩文件夹内的文件public void doZip(String zipDirectory)/zipDirectoryPath:需要压缩的文件夹名File file;File zipDir;zipDir = new File(zipDirectory);String zipFileName = zipDir.getName
5、() + ".zip"/压缩后生成的zip文件名trythis.zipOut = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFileName);handleDir(zipDir , this.zipOut);this.zipOut.close();catch(IOException ioe)ioe.printStackTrace();/由doZip调用,递归完成目录文件读取private void handleDir(File dir , ZipOutputStream zipO
6、ut)throws IOExceptionFileInputStream fileIn;File files;files = dir.listFiles();if(files.length = 0)/如果目录为空,则单独创建之./ZipEntry的isDirectory()方法中,目录以"/"结尾.this.zipOut.putNextEntry(new ZipEntry(dir.toString() + "/");this.zipOut.closeEntry();else/如果目录不为空,则分别处理目录和文件.for(File fileName : f
7、iles)/System.out.println(fileName);if(fileName.isDirectory()handleDir(fileName , this.zipOut);elsefileIn = new FileInputStream(fileName);this.zipOut.putNextEntry(new ZipEntry(fileName.toString();while(this.readedBytes = fileIn.read(this.buf)>0)this.zipOut.write(this.buf , 0 , this.readedBytes);th
8、is.zipOut.closeEntry();/解压指定zip文件public void unZip(String unZipfileName)/unZipfileName需要解压的zip文件名FileOutputStream fileOut;File file;trythis.zipIn = new ZipInputStream (new BufferedInputStream(new FileInputStream(unZipfileName);while(this.zipEntry = this.zipIn.getNextEntry() != null)file = new File(t
9、his.zipEntry.getName();/System.out.println(file);/if(this.zipEntry.isDirectory()file.mkdirs();else/如果指定文件的目录不存在,则创建之.File parent = file.getParentFile();if(!parent.exists()parent.mkdirs();fileOut = new FileOutputStream(file);while( this.readedBytes = this.zipIn.read(this.buf) ) > 0)fileOut.write(t
10、his.buf , 0 , this.readedBytes );fileOut.close();this.zipIn.closeEntry();catch(IOException ioe)ioe.printStackTrace();/设置缓冲区大小public void setBufSize(int bufSize)this.bufSize = bufSize;/测试Zip类public static void main(String args)throws Exceptionif(args.length=2)String name = args1;Zip zip = new Zip();i
11、f(args0.equals("-zip")zip.doZip(name);else if(args0.equals("-unzip")zip.unZip(name);elseSystem.out.println("Usage:");System.out.println("压缩:java Zip -zip /directoryName");System.out.println("解压:java Zip -unzip /fileName.zip");throw new Exception("Arguments error!"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泰安新泰市紫光实验中学招聘笔试参考题库及答案解析
- 2025广东中共东莞市委外事工作委员会办公室招聘编外聘用人员1人参考题库附答案
- 2025江苏恒神股份有限公司社会熟练人员招聘77人模拟试卷附答案
- 2025广东汕头市市属医疗卫生机构下半年招聘工作人员132人(公共基础知识)综合能力测试题附答案
- 2025年下半年宜春市市直机关事业单位编外用工公开招聘【82人】备考题库附答案
- 2025广东广州花都城投西城经济开发有限公司第二次招聘项目用笔试备考试题附答案
- 2025河北邯郸市馆陶县选调事业单位人员3人备考题库附答案
- 2026广东佛山市南方医科大学珠江医院三水医院招聘高层次人才4人笔试备考试题及答案解析
- 2026四川雅安市石棉县佳业劳务派遣有限公司应急管理局招聘综合应急救援大队工作人员拟聘用公示笔试备考试题及答案解析
- 2025秋人教版道德与法治八年级上册3.2营造清朗空间同步练习
- 慢性阻塞性肺疾病患者非肺部手术麻醉及围术期管理的专家共识
- 灯谜大全及答案1000个
- 中建办公商业楼有限空间作业专项施工方案
- 急性胰腺炎护理查房课件ppt
- 初三数学期末试卷分析及中考复习建议课件
- GB/T 4074.8-2009绕组线试验方法第8部分:测定漆包绕组线温度指数的试验方法快速法
- GB/T 40222-2021智能水电厂技术导则
- 第十章-孤独症及其遗传学研究课件
- 人教版四年级上册语文期末试卷(完美版)
- 防空警报系统设计方案
- 酒店管理用水 酒店厨房定额用水及排水量计算表分析
评论
0/150
提交评论