服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java学习:一个压缩文件的例子

  以下为例子的源码,大家可以参考一下:





  /**
  * @(#) zipfile.java
  *
  * copyright 2004 opensource develop team. all rights reserved.
  */
  package com.opensource.zip;

  import java.io.file;
  import java.io.fileinputstream;
  import java.io.fileoutputstream;
  import java.io.ioexception;
  import java.util.arraylist;
  import java.util.list;
  import java.util.zip.zipentry;
  import java.util.zip.zipoutputstream;

  /**
  * 在csdn帖子http://community.csdn.net/expert/topic/3316/3316352.xml?temp=.2301905中看到
  * 关于zip压缩文件的问题,在该类中主要演示在zip压缩中可以不把文件路径压缩进去
  *
  * @author o.d.t
  * @version 1.0 04/08/27
  */
  public class zipfile
  {
  public static void main(string[] args)
  {
  arraylist filenames = new arraylist(); // 存放文件名,并非含有路径的名字
  arraylist files = new arraylist(); // 存放文件对象
  
  try
  {
  fileoutputstream fileout = new fileoutputstream("e:/zipoutofpath.zip");
  zipoutputstream outputstream = new zipoutputstream(fileout);
  
  file rootfile = new file("e:/temp");
  listfile(rootfile, filenames, files);      






  for (int loop=0; loop<files.size(); loop++)
  {
  fileinputstream filein = new fileinputstream((file)files.get(loop));
  outputstream.putnextentry(new zipentry((string)filenames.get(loop)));
  byte[] buffer = new byte[1024];
  while (filein.read(buffer) != -1)
  {
  outputstream.write(buffer);
  }
  
  outputstream.closeentry();
  filein.close();
  }
  
  outputstream.close();
  }
  catch (ioexception ioe)
  {
  ioe.printstacktrace();
  }
  }
  
  static void  listfile(file parentfile, list namelist, list filelist)
  {
  if (parentfile.isdirectory())
  {
  file[] files = parentfile.listfiles();
  for (int loop=0; loop<files.length; loop++)
  {
  listfile(files[loop], namelist, filelist);
  }
  }
  else
  {
  filelist.add(parentfile);
  namelist.add(parentfile.getname());
  }
  }
  }


  
  





扫描关注微信公众号