Java压缩解压应用.doc_第1页
Java压缩解压应用.doc_第2页
Java压缩解压应用.doc_第3页
Java压缩解压应用.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java解压与压缩应用在Web应用中,可用到批量附件上传,我们可以通过flash控件来实现,当然也可以通过压缩解压来实现。下面应用示例介绍压缩与解压的实现过程。供大家参考学习1. 依赖于ant-1.7.1.jar,把此jar导入到应用的工程项目中:2. 代码示例:package com.lrm.study.zip;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import org.apache.tools.zip.ZipOutputStream;/* * Java解压与压缩文件 java提供的java.util.zip.*.对中文不支持.但可能通过ZipOutputStream 来解决这个问题. * 下面就是一个简单的例子,注 需要导入ant.jar支持包 * * author lrm * */public class JavaAntZipApp /* * Create on Nov 3, 2009 by lrm */public static void main(String args) / TODO Auto-generated method stubJavaAntZipApp jaza = new JavaAntZipApp();String inputFileName = E:/我的收藏/JAVA APLLICATION/Java压缩与解压应用;/ 要压缩的文件名try / 压缩/ jaza.zip(inputFileName);/ 解压jaza.unZip(D:test生化试剂报价表.zip, D:解压测试目录); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/*压缩* */public void zip(String inputFileName) throws Exception String zipFileName = d:批量打包测试.zip;/ 打包后文件名字System.out.println(zipFileName);zip(zipFileName, new File(inputFileName);private void zip(String zipFileName, File inputFile)ZipOutputStream out =null;try out = new ZipOutputStream(new FileOutputStream(zipFileName);zip(out, inputFile, ); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();finallytry out.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();System.out.println(zip done);private void zip(ZipOutputStream out, File f, String base) FileInputStream in = null;if (f.isDirectory() File fl = f.listFiles();System.out.println(新增目录元素 + base + /);try out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + /);base = base.length() = 0 ? : base + /;for (int i = 0; i fl.length; i+) zip(out, fli, base + fli.getName(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); else System.out.println(新增普通文件元素 + base);try out.putNextEntry(new org.apache.tools.zip.ZipEntry(base);in = new FileInputStream(f);int b;while (b = in.read() != -1) out.write(b); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); finally try in.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();/*解压* */private void createDirectory(String directory, String subDirectory) String dir;File fl = new File(directory);try / 如果解压文件基本目录结构不存在,新建if (subDirectory = & fl.exists() != true) / System.out.println(*创建基本目录结构*+directory);fl.mkdir();/ 主要创建子目录else if (subDirectory != ) dir = subDirectory.replace(, /).split(/);for (int i = 0; i dir.length; i+) File subFile = new File(directory + File.separator + diri);if (subFile.exists() = false) / System.out.println(*创建子目录*+directory +/ File.separator + diri);subFile.mkdir();directory += File.separator + diri; catch (Exception ex) System.out.println(ex.getMessage();/* * param zipFileName * 压缩文件名及路径; outputDirectory 被解压到的文件目录 * Create on Nov 3, 2009 by lrm */public void unZip(String zipFileName, String outputDirectory)throws Exception InputStream in = null;FileOutputStream out = null;try org.apache.tools.zip.ZipFile zipFile = new org.apache.tools.zip.ZipFile(zipFileName);java.util.Enumeration e = zipFile.getEntries();org.apache.tools.zip.ZipEntry zipEntry = null;createDirectory(outputDirectory, );while (e.hasMoreElements() zipEntry = (org.apache.tools.zip.ZipEntry) e.nextElement();System.out.println(= 解压 = + zipEntry.getName();/ 判断是否为一个文件夹if (zipEntry.isDirectory() String name = zipEntry.getName().trim();/ 因为后面带有一个/,所有要去掉name = name.substring(0, name.length() - 1);File f = new File(outputDirectory + File.separator + name);if (!f.exists() f.mkdir();/ System.out.println(*创建根目录* +/ outputDirectory + File.separator + name); else String fileName = zipEntry.getName();fileName = fileName.replace(, /);/ 判断子文件是否带有目录,有创建,没有写文件if (fileName.indexOf(/) != -1) createDirectory(outputDirectory, fileName.substring(0,fileName.lastIndexOf(/);fileName = fileName.substring(fileName.lastIndexOf(/) + 1);File f = new File(outputDirectory + File.separator+ zipEntry.getName();f.createNewFile();in = zipFile.getInputStream(zipEntry);out = new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论