使用java实现文件的压缩和解压缩

使用java实现文件的压缩和解压缩

ID:11480154

大小:40.00 KB

页数:4页

时间:2018-07-12

使用java实现文件的压缩和解压缩_第1页
使用java实现文件的压缩和解压缩_第2页
使用java实现文件的压缩和解压缩_第3页
使用java实现文件的压缩和解压缩_第4页
资源描述:

《使用java实现文件的压缩和解压缩》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用Java实现文件的压缩和解压缩在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;  功能:zip压缩、解压  说明:本程序通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能.  问题:由于java.util.zip包并不支持汉字,当zip文件中有名字为中文的文件时就会出现异常:"Exceptioninthread"main"java.lang.IllegalArgumentException

2、atjava.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:285)  解决:  方法1、修改importjava.util.zip.ZipInputStream和ZipOutputStream.java.util.zip只支持UTF-8,Ant里面可以指定编码.  方法2、使用ApacheAnt里提供的zip工具。不使用java.util.zip的包,把ant.jar放到classpath中.  程序中使用importorg.apache.tools.zip.*; 

3、 仅供编程学习参考.代码如下:  [java]viewplaincopy  importjava.io.*;  importjava.util.zip.*;  /**  *@authorWinty  *@Usage:  *压缩:javaZip-zip"directoryName"  *解压:javaZip-unzip"fileName.zip"  */  publicclassZip{  privateZipInputStreamzipIn;//解压Zip  privateZipOutputStreamzipOut;//压缩Zip  p

4、rivateZipEntryzipEntry;  privatestaticintbufSize;//sizeofbytes  privatebyte[]buf;  privateintreadedBytes;  publicZip(){  this(512);  }  publicZip(intbufSize){  this.bufSize=bufSize;  this.buf=newbyte[this.bufSize];  }  //压缩文件夹内的文件  publicvoiddoZip(StringzipDirectory){//z

5、ipDirectoryPath:需要压缩的文件夹名  Filefile;  FilezipDir;  zipDir=newFile(zipDirectory);  StringzipFileName=zipDir.getName()+".zip";//压缩后生成的zip文件名  try{  this.zipOut=newZipOutputStream(newBufferedOutputStream(newFileOutputStream(zipFileName)));  handleDir(zipDir,this.zipOut);  t

6、his.zipOut.close();  }catch(IOExceptionioe){  ioe.printStackTrace();  }  }  //由doZip调用,递归完成目录文件读取  privatevoidhandleDir(Filedir,ZipOutputStreamzipOut)throwsIOException{  FileInputStreamfileIn;  File[]files;  files=dir.listFiles();  if(files.length==0){//如果目录为空,则单独创建之.  /

7、/ZipEntry的isDirectory()方法中,目录以"/"结尾.  this.zipOut.putNextEntry(newZipEntry(dir.toString()+"/"));  this.zipOut.closeEntry();  }  else{//如果目录不为空,则分别处理目录和文件.  for(FilefileName:files){  //System.out.println(fileName);  if(fileName.isDirectory()){  handleDir(fileName,this.zip

8、Out);  }  else{  fileIn=newFileInputStream(fileName);  this.zipOut.putNextEntry(newZipEntry(fileName.to

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。