正在阅读:Java学习:一个压缩文件的例子Java学习:一个压缩文件的例子

2004-09-02 10:15 出处:CSDN 作者:iceandfire 责任编辑:linjixiong

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



  /**
  * @(#) 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());
  }
  }
  }


  
  


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品