下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年法学基础理论及案例分析题集
- 2026年电子商务运营网店运营策略与实践试题
- 2026年会计基础知识与财务报表分析题库及答案详解
- 2026年体育教练员培训运动训练理论与实践题集
- 2026年经济学中的宏观与微观分析题库
- 2026年律师执业能力测试题法律文书写作与案例分析
- 2026年旅游管理酒店服务质量评价标准与方法论述题
- 2026年音乐教师能力提升题库含音乐理论与教学方法
- 四川省遂宁市2025-2026学年高二上学期期末考试英语 (含答案)
- 2026年文化创意产业品牌管理品牌营销策略考核题库
- 2025中国西电集团校园招聘笔试历年参考题库附带答案详解
- 2025年北京市物业管理行业市场深度分析及发展前景预测报告
- 旅游景区商户管理办法
- 好孩子公司管理制度
- 认知症专区管理制度
- 国家职业技术技能标准 6-23-03-15 无人机装调检修工 人社厅发202192号
- 乐理考试古今音乐对比试题及答案
- 变电站综合自动化课件 二次回路识图
- 水泥窑协同处置危废可行性研究报告
- 家用太阳能与风能发电系统在节约电力资源中的应用研究
- DB45T 2473-2022 消防设施维护保养规程
评论
0/150
提交评论