使用java基础类实现zip压缩和zip解压工具类分享.doc

上传人:marr****208 文档编号:132158473 上传时间:2020-05-13 格式:DOC 页数:14 大小:81.50KB
返回 下载 相关 举报
使用java基础类实现zip压缩和zip解压工具类分享.doc_第1页
第1页 / 共14页
使用java基础类实现zip压缩和zip解压工具类分享.doc_第2页
第2页 / 共14页
使用java基础类实现zip压缩和zip解压工具类分享.doc_第3页
第3页 / 共14页
使用java基础类实现zip压缩和zip解压工具类分享.doc_第4页
第4页 / 共14页
使用java基础类实现zip压缩和zip解压工具类分享.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《使用java基础类实现zip压缩和zip解压工具类分享.doc》由会员分享,可在线阅读,更多相关《使用java基础类实现zip压缩和zip解压工具类分享.doc(14页珍藏版)》请在金锄头文库上搜索。

1、使用java基础类实现zip压缩和zip解压工具类分享使用java基础类写的一个简单的zip压缩解压工具类,实现了指定目录压缩到和该目录同名的zip文件和将zip文件解压到指定的目录的功能使用java基础类写的一个简单的zip压缩解压工具类复制代码 代码如下:package .helper;import java.io.*;import java.util.logging.Logger;import java.util.zip.*;public class ZipUtil private final static Logger logger = Logger.getLogger(ZipUtil

2、.class.getName();private static final int BUFFER = 1024*10;/* 将指定目录压缩到和该目录同名的zip文件,自定义压缩路径* param sourceFilePath 目标文件路径* param zipFilePath 指定zip文件路径* return*/public static boolean zip(String sourceFilePath,String zipFilePath)boolean result=false;File source=new File(sourceFilePath);if(!source.exists

3、()logger.info(sourceFilePath+ doesnt exist.);return result;if(!source.isDirectory()logger.info(sourceFilePath+ is not a directory.);return result;File zipFile=new File(zipFilePath+/+source.getName()+.zip);if(zipFile.exists()logger.info(zipFile.getName()+ is already exist.);return result;elseif(!zipF

4、ile.getParentFile().exists()if(!zipFile.getParentFile().mkdirs()logger.info(cannt create file +zipFile.getName();return result;logger.info(creating zip file.);FileOutputStream dest=null;ZipOutputStream out =null;try dest = new FileOutputStream(zipFile);CheckedOutputStream checksum = new CheckedOutpu

5、tStream(dest, new Adler32();out=new ZipOutputStream(new BufferedOutputStream(checksum);out.setMethod(ZipOutputStream.DEFLATED);compress(source,out,source.getName();result=true; catch (FileNotFoundException e) e.printStackTrace();finally if (out != null) try out.closeEntry(); catch (IOException e) e.

6、printStackTrace();try out.close(); catch (IOException e) e.printStackTrace();if(result)logger.info(done.);elselogger.info(fail.);return result;private static void compress(File file,ZipOutputStream out,String mainFileName) if(file.isFile()FileInputStream fi= null;BufferedInputStream origin=null;try

7、fi = new FileInputStream(file);origin=new BufferedInputStream(fi, BUFFER);int index=file.getAbsolutePath().indexOf(mainFileName);String entryName=file.getAbsolutePath().substring(index);System.out.println(entryName);ZipEntry entry = new ZipEntry(entryName);out.putNextEntry(entry);byte data = new byt

8、eBUFFER;int count;while(count = origin.read(data, 0, BUFFER) != -1) out.write(data, 0, count); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();finally if (origin != null) try origin.close(); catch (IOException e) e.printStackTrace();else if (file.isDire

9、ctory()File fs=file.listFiles();if(fs!=null&fs.length0)for(File f:fs)compress(f,out,mainFileName);/* 将zip文件解压到指定的目录,该zip文件必须是使用该类的zip方法压缩的文件* param zipFile* param destPath* return*/public static boolean unzip(File zipFile,String destPath)boolean result=false;if(!zipFile.exists()logger.info(zipFile.g

10、etName()+ doesnt exist.);return result;File target=new File(destPath);if(!target.exists()if(!target.mkdirs()logger.info(cannt create file +target.getName();return result;String mainFileName=zipFile.getName().replace(.zip,);File targetFile=new File(destPath+/+mainFileName);if(targetFile.exists()logge

11、r.info(targetFile.getName()+ already exist.);return result;ZipInputStream zis =null;logger.info(start unzip file .);try FileInputStream fis= new FileInputStream(zipFile);CheckedInputStream checksum = new CheckedInputStream(fis, new Adler32();zis = new ZipInputStream(new BufferedInputStream(checksum)

12、;ZipEntry entry;while(entry = zis.getNextEntry() != null) int count;byte data = new byteBUFFER;String entryName=entry.getName();int index=entryName.indexOf(mainFileName);String newEntryName=destPath+/+entryName.substring(index);System.out.println(newEntryName);File temp=new File(newEntryName).getPar

13、entFile();if(!temp.exists()if(!temp.mkdirs()throw new RuntimeException(create file +temp.getName() + fail);FileOutputStream fos = new FileOutputStream(newEntryName);BufferedOutputStream dest = new BufferedOutputStream(fos,BUFFER);while (count = zis.read(data, 0, BUFFER) != -1) dest.write(data, 0, co

14、unt);dest.flush();dest.close();result=true; catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();finally if (zis != null) try zis.close(); catch (IOException e) e.printStackTrace();if(result)logger.info(done.);elselogger.info(fail.);return result;public static void main(String args) throws IOException /ZipUtil.zip(D:/apache-tomcat-7.0.30, d:/temp);File zipFile=new File(D:/temp/apache-tomcat-7.0.30.zip);ZipUtil.unzip(zipFile,d:/temp) ;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号